2012-03-08 106 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

相關問題