连接到Ruby DBI中的远程数据库

时间:2013-03-18 10:51:02

标签: ruby

如何在ruby中连接到远程数据库?

我有一个应用程序,我需要连接到我的远程主机数据库并读取这些数据库表并映射到我的应用程序。

感谢YOu提前获得帮助

3 个答案:

答案 0 :(得分:3)

您的问题不完整。你没有提到哪个数据库。我假设是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或主机放在主机名中。其余参数是不言自明的。您必须在远程服务器mysql主机中允许您的公共IP地址。例如,如果您的IP类似于209.88.228.142,则必须在mysql服务器中允许此IP。

有关详细信息,请参阅doc

在数据库服务器中允许您的IP。 假设上述IP是您的公共IP,您可以使用以下命令允许访问 greatdb 数据库。在数据库服务器的控制台中运行它。

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

注意:用适当的值替换username,dbname,password,host / ip。

答案 1 :(得分: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

答案 2 :(得分:-1)

您还应该注意到您可能想要连接的mysql允许远程访问。请检查您是否可以使用db-tool(如squirrel)或mysql客户端远程连接。

通常,mysql数据库中的useres在CREATE USER语句中被限制为localhost或特定的远程主机,如下所示:

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

因此,请确保远程数据库中的用户是'monty'@'%''monty'@'yourhosthere'

有关详细信息,请参阅mysql reference "Access Control"