1

我无法通过 Ruby 和 DBI gem 连接到远程服务器上的 MySQL 数据库。

在本例中,DB 主机的地址为 000.00.00.000,DB 的名称为testdb

应该username是我使用 SSH 连接到服务器的个人用户名还是特定的 MySQL 用户名?应该password是我进行 SSH 时使用的个人密码还是我打开后使用的 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

我的终端中有这个和那个功能的密码。

我应该在 DBI 连接语句中添加什么以通过 Ruby 正确连接?

4

1 回答 1

1

假设您在本地计算机上运行 MySQL 服务器,请尝试将连接线更改为:

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