2

ルビーのリモートデータベースに接続するにはどうすればよいですか?

リモートホストデータベースに接続し、それらのデータベーステーブルを読み取り、アプリケーションにマップする必要があるアプリケーションがあります。

よろしくお願いします

4

3 に答える 3

4

あなたの質問は不完全です。どのデータベースかは言及していません。私はmysqlを想定しています。また、あなたの努力を示す必要があります。

http://tmtm.org/en/mysql/ruby/から mysql gem をインストールします。

gem install mysql

これを ruby​​ ファイルで使用します。

db = Mysql.new(hostname, username, password, database)

例:

require 'mysql'
db = Mysql.new('209.88.228.142', 'someuser', 'exceptionalpassword', 'greatdb')

サーバーの IP またはホストをhostnameに入れます。残りのパラメータは一目瞭然です。リモート サーバーの mysql ホストでパブリック IP アドレスを許可する必要があります。たとえば、IP が 209.88.228.142 の場合、mysql サーバーでこの IP を許可する必要があります。

詳細については、ドキュメントを参照してください。

データベース サーバーで IP を許可します。 上記の IP がパブリック IP であると仮定すると、次のコマンドを使用して、greatdbデータベースへのアクセスを許可できます。db サーバーのコンソールで実行します。

GRANT ALL ON greatdb.* TO someuser@'209.88.228.142' IDENTIFIED BY 'exceptionalpassword';

注: username、dbname、password、host/ip を適切な値に置き換えます。

于 2013-03-18T10:58:10.290 に答える
1

Rails を使用している場合: はい、可能です。可能性のある他のほとんどのドライバーについては、試したことをお知らせください。

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: name_of_databse
  pool: 20
  username: user
  password: password
  wait_timeout: 3600
  host: name.of.server
  port: 3306
于 2013-03-18T10:53:12.530 に答える
-1

また、接続しようとしている mysql がリモート アクセスを許可していることにも注意してください。リモートで db-tool (squirrel など) または mysql クライアントに接続できるかどうかを確認してください。

通常、mysql データベースのユーザーは、CREATE USER ステートメントで localhost または次のような特定のリモート ホストに制限されます。

CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';

そのため、リモート データベースで、'monty'@'%'またはのユーザーであることを確認してください。'monty'@'yourhosthere'

詳細については、mysql リファレンス「アクセス制御」を参照してください。

于 2013-03-18T11:33:24.293 に答える