我正在尝试将我的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机器上开发我的应用程序。
答案 0 :(得分:2)
我猜测,根据我原来的评论,你的远程数据库拒绝接受来自localhost之外的任何东西。基于这个假设,这里有两个解决方案:
使用ssh隧道。有很多关于连接ssh隧道的方法,例如http://www.howtogeek.com/howto/ubuntu/access-your-mysql-server-remotely-over-ssh/。
确保您的远程数据库正在接受远程连接。在以下stackoverflow线程Can't connect to MySQL server error 111
答案 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;