2012-03-08 92 views
0

在我的database.yml,我设置了生产一部分Rails的无法连接到远程数据库

production: 
    adapter: mysql2 
    host: 1.1.1.1 
    encoding: utf8 
    reconnect: false 
    database: production_db 
    pool: 5 
    username: root 
    password: 

但运行RAILS_ENV=production rake db:create时,控制台显示它会尝试连接到本地数据库,如:Access denied for user 'root'@'2.2.2.2' (using password: NO).这里2.2.2.2是我的本地IP地址。

我正在使用rails 3.2.2

+0

尝试mysql -uroot -p -h1.1.1.1,你可以在你的mysql登录吗? – welsonla 2012-03-08 09:32:35

+0

哈哈。我们认为,在Gemfile中@welsonla – 2012-03-08 09:48:08

+0

将gem'sqlite3'更改为gem'mysql2',并确保您可以使用此信息在终端登录您的mysql – welsonla 2012-03-08 09:51:16

回答

1

您可以使用telnet验证网络连接吗?运行此命令并发布响应。

telnet 1.1.1.1 3306 
+0

这帮助我诊断我的问题。谢谢! – 2013-03-25 17:02:23

2

在错误消息中,'2.2.2.2'是源IP。所以它不是试图连接本地数据库。 默认情况下,有多个root用户,如'root'@'localhost','root'@'127.0.0.1'。您需要添加另一个,'root'@'2.2.2.2',从2.2.2.2连接。或从任何地方连接'root'@'%'。 请参阅Adding User Accounts

您正在使用MySQL,对吧?

+0

谢谢,你的解释很清楚。其实这是MySQL帐户设置问题。 – Frankel 2012-03-08 10:14:36