1

Ruby と DBI gem を介してリモート サーバー上の MySQL DB に接続できません。

この例では、DB ホストのアドレスは 000.00.00.000 で、DB の名前は ですtestdb

usernameサーバーにSSHで接続する個人のユーザー名または特定のMySQLユーザー名を使用する必要がありますか? passwordSSH で使用する個人のパスワードにするか、接続後に使用する MySQL パスワードにする必要がありますか? IP アドレスとともにポートなどを指定する必要がありますか?

このチュートリアルで見つけた、現在使用しようとしているコードは次のとおりです

require 'rubygems'
require 'mysql'
require 'dbi'

#connect to mysql database

begin
 # connect to the MySQL server
 dbh = DBI.connect("DBI:Mysql:testdb:000.00.00.000", 
                    "username", "password")
 # get server version string and display it
 row = dbh.select_one("SELECT VERSION()")
 puts "Server version: " + row[0]
rescue DBI::DatabaseError => e
 puts "An error occurred"
 puts "Error code:    #{e.err}"
 puts "Error message: #{e.errstr}"
ensure
 # disconnect from server
 dbh.disconnect if dbh
end

私が実行すると:

Error code:    2003
Error message: Can't connect to MySQL server on  ... (60)

SSH では、現在、次のコマンドで MySQL にアクセスしています。

mysql -u root testdb -p

私は自分の端末でこれとそれが機能するためのパスワードを持っています。

Ruby経由で正しく接続するには、DBI接続ステートメントに何を入れるべきですか?

4

1 に答える 1

1

ローカル マシンで MySQL サーバーを実行していると仮定して、接続ラインを次のように変更してみてください。

dbh = DBI.connect("DBI:Mysql:testdb:127.0.0.1",
     "root", "<rootmysqlpassword>")
于 2012-10-30T03:56:57.607 に答える