2012-05-29 121 views
12

我是一個Rails開發人員使用MySQL作爲數據庫的新手。我可以使用以下命令成功地連接到MySQL:Rails開發 - 無法連接到'本地主機'上的MySQL服務器(10061)

MySQL -u macDaddy -p 

在命令提示符下,所以我知道該用戶有效和MySQL正在運行。但是,當我嘗試在命令行中運行

rake db:schema:dump 

我得到這個錯誤: 耙中止! 無法連接到'localhost'上的MySQL服務器(10061)

我的database.yml有問題嗎?這裏是:

development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: bookmobile 
    pool: 5 
    username: macDaddy 
    password: booklover 
    host: localhost 
    socket: mysql 
    port: 3306 

我也嘗試刪除端口和套接字線,但我仍然得到相同的錯誤。請幫忙。這裏是我的版本: 在Windows 7

的MySQL版本14.14 DISTRIB 21年5月5日開發Win64的 Server版本21年5月5日

的Rails 3.2.1

謝謝!

+0

如果您指定127.0.0.1而不是本地主機,會發生什麼情況? – DVG

+0

mysqld是否在3306上偵聽?試試'netstat -an | grep 3306'。如果你沒有看到類似'* .3306 *。* LISTEN'的東西,那可能是問題所在。 –

回答

1

那是因爲你沒有密碼在你的數據庫服務器(MySQL的)設置有做,試試這個:

development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: bookmobile 
    pool: 5 
    username: macDaddy 
    password: 
    host: localhost 
    socket: mysql 
    port: 3306 
41

我最好的猜測是,機器,您表示如Windows,已經IPv6網絡。啓用。因此,當你嘗試去localhost時,它解析爲「:: 1」。這實際上是本地機器,但是,默認的MySQL安裝通常將綁定地址設置爲127.0.0.1,這會導致localhost在此設置中失敗。

如果你得到的迴應您可能能夠通過在命令提示符下運行ping localhost,看到來驗證這一點:

Reply from ::1: time<1ms 

爲了解決這個問題,你可以改變你的配置指定:

host: 127.0.0.1 

或者,您可以更改MySQL的配置以允許不同的綁定地址,例如本地主機而不是127.0.0.1。

+0

這正是我的問題,謝謝。 –

4

簡單地改變你的主機到主機:127.0.0.1

3

變化主機database.yml中值是「127.0.0.1」會工作。或者,你可以修改你的電腦的hosts文件,添加一個項目爲「localhost 127.0.0.1」。

3

我有一個類似的錯誤,但它是因爲database.yml中缺少端口:3306。一旦我添加端口:3306問題已解決。

0

確保mysql服務器正在運行。

+1

這個問題已經說明mysql正在運行 – Litmus

1

確保創建MySQL時設置的端口號(例如:7777),請添加適當的「用戶名」和「密碼」的端口號。

default: &default 
    adapter: mysql2 
    encoding: utf8 
    pool: 5 
    username: root 
    password: admin 
    host: localhost 
    port: 7777 

在您的應用程序目錄的config目錄中的database.yml中。

相關問題