ルビーのリモートデータベースに接続するにはどうすればよいですか?
リモートホストデータベースに接続し、それらのデータベーステーブルを読み取り、アプリケーションにマップする必要があるアプリケーションがあります。
よろしくお願いします
ルビーのリモートデータベースに接続するにはどうすればよいですか?
リモートホストデータベースに接続し、それらのデータベーステーブルを読み取り、アプリケーションにマップする必要があるアプリケーションがあります。
よろしくお願いします
あなたの質問は不完全です。どのデータベースかは言及していません。私は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 を適切な値に置き換えます。
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
また、接続しようとしている mysql がリモート アクセスを許可していることにも注意してください。リモートで db-tool (squirrel など) または mysql クライアントに接続できるかどうかを確認してください。
通常、mysql データベースのユーザーは、CREATE USER ステートメントで localhost または次のような特定のリモート ホストに制限されます。
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
そのため、リモート データベースで、'monty'@'%'
またはのユーザーであることを確認してください。'monty'@'yourhosthere'
詳細については、mysql リファレンス「アクセス制御」を参照してください。