如何使用DBI连接到远程mysql服务器?

时间:2012-10-30 03:32:56

标签: mysql ruby dbi

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

对于此示例,数据库主机的地址为000.00.00.000,数据库的名称为testdb

username应该是我的个人用户名吗?我用服务器或特定的MySQL用户名SSH连接到服务器? password应该是我的个人密码我是SSH还是我用过的MySQL密码? 我是否需要指定端口或其他任何IP地址?

以下是我目前正在尝试使用的代码,我发现on this tutorial

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 connect语句中添加什么才能通过Ruby正确连接?

1 个答案:

答案 0 :(得分:1)

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

dbh = DBI.connect("DBI:Mysql:testdb:127.0.0.1",
     "root", "<rootmysqlpassword>")