2011-11-17 96 views
1

我是初學者學習RoR(版本3.1.1)。我想爲數據庫使用mysql。 我使用代碼rails new hello -d mysql創建了一個新的rails項目,並創建了一個數據庫表。 檢查了config文件夾中的database.yml文件並添加了數據庫訪問的密碼。 但是,當我嘗試運行rake db:migrate我得到以下錯誤: rake aborted! syntax error on line 18, col 2: 'socket: /tmp/mysqld.sock'mysqld.sock在tmp文件夾中丟失

檢查使用終端tmp文件夾,但沒有mysqld.sock文件。

我該如何配置mysql?

我使用它在Mac OS X 10.6.8

回答

0

通常mysqld.sock文件是/var/run/mysqld/

你可以簡單地創建符號鏈接:

ln -s /var/run/mysqld/mysqld.sock /tmp/mysqld.sock

+0

不,它取決於你的mysql安裝/發行版等 - 讓我看看windows box上的位置! –

+0

他說他「使用終端檢查了tmp文件夾」,所以它很可能不是Windows系統。然而,+1爲你更通用的答案。 – AndreKR

+0

同意你AndrekR--試圖讓你接受的點。 (之後3次編輯是因爲它刪除用戶名) –

1

檢查你在/etc/my.cnf(不知道它是Windows),並尋找「插座」配置行 - 這將告訴你是mysql的unix本地套接字。

grep sock /etc/my.cnf 
socket   = /tmp/mysql.sock 
+0

我沒有看到etc文件夾中的任何my.cnf。使用終端瀏覽並使用'ls -la'來檢查文件夾內容。 – user1050982

+0

您可能正在使用默認編譯值。你是如何安裝mysql的? –

+0

我從這裏下載並安裝了mysql [鏈接](http://mysql.phphosts.org/Downloads/MySQL-5.1/mysql-5.1.59-osx10.6-x86_64.dmg)。它有mysql包,啓動選項和首選項窗格設置。 – user1050982

1

爲頭向上嘗試使用127.0.0.1代替localhost

這將使使用TCP套接字,而不是客戶端連接。

+0

不是真正的locahost可以配置許多事情,例如: ping本地主機 PING本地主機(127.0.0.1)56(84)個字節的數據 從本地主機(127.0.0.1)64字節:icmp_req = 1 ttl = 64時間= 0.027 ms –

+0

數據庫不依賴於TCP連接權限?我在配置數據庫本身時遇到了問題 – user1050982

+0

@AdrianCornish ...從您的'/ etc/hosts'文件中刪除'127.0.0.1 localhost',並且您不能使用'localhost'只是127.0.0.1的別名 –