无法将Ruby on Rails连接到远程mysql数据库

时间:2011-12-01 03:08:52

标签: mysql ruby-on-rails ruby-on-rails-3

我正在尝试将我的rails 3应用程序连接到godaddy服务器上托管的mysql数据库。我可以使用mysql客户端远程连接,但不能在我运行应用程序时连接。我能够连接本地mysql,但当我尝试连接到我的远程托管数据库时,我收到此错误:

  

Mysql2 ::错误(无法连接到'[主机IP地址]'上的MySQL服务器   (111))

这是我的database.yml

development:
    adapter: mysql2
    encoding: utf8
    host: host_ip_address
    port: 3306
    database: database_name
    username: user_name
    password: password

如果有帮助,我正在Ubuntu机器上开发我的应用程序。

2 个答案:

答案 0 :(得分:2)

我猜测,根据我原来的评论,你的远程数据库拒绝接受来自localhost之外的任何东西。基于这个假设,这里有两个解决方案:

  1. 使用ssh隧道。有很多关于连接ssh隧道的方法,例如http://www.howtogeek.com/howto/ubuntu/access-your-mysql-server-remotely-over-ssh/

  2. 确保您的远程数据库正在接受远程连接。在以下stackoverflow线程Can't connect to MySQL server error 111

  3. 上查看接受的答案

答案 1 :(得分:2)

  • my.cnf中,查找以下行:

    bind-address = 127.0.0.1 
    

    并将地址设置为0.0.0.0

  • 访问mysql

    mysql -u root -p
    
  • 比在mysql服务器上创建用户并向所有人授予权限:

    CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;