2012-01-12 243 views
4

我想克隆一個repo並在本地機器上運行它。我沒有創建數據庫,我試圖手動創建我的database.yml文件(我第一次這樣做)。我不太確定自己在做什麼,並不斷收到有關連接到MySql服務器的錯誤。這是我的database.yml文件:'127.0.0.1'無法連接到MySQL服務器

development: 
    adapter: mysql 
    host: 127.0.0.1 
    database: db/app_development 
    username: root 
    password: 

我也嘗試過的,而不是127.0.0.1本地主機,試圖通過這樣做來創建數據庫時,既給我的錯誤「捆綁高管耙分貝:創建」 ......我得到這個錯誤:

Can't connect to MySQL server on '127.0.0.1' (61) 
Couldn't create database for {"username"=>"root", "adapter"=>"mysql", "database"=>"db/app_development", "host"=>"127.0.0.1", "password"=>nil}, charset: utf8, collation: utf8_unicode_ci 

我知道我做錯了什麼,但我無法弄清楚它是什麼。我需要啓動mysql服務器嗎?

這是當我運行mysqld_safe的輸出:

120111 20:35:39 mysqld_safe Logging to '/usr/local/var/mysql/Matthew-Bermans-MacBook-Air.local.err'. 
120111 20:35:39 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql 
120111 20:35:41 mysqld_safe mysqld from pid file /usr/local/var/mysql/Matthew-Bermans-MacBook-Air.local.pid ended 
+0

您確認這些信息是正確的嗎? (您可以向我們展示您成功連接到數據庫的終端會話嗎?) – 2012-01-12 04:23:22

+0

您可以通過運行mysql -uroot?直接在您的終端上連接到MySQL。也請嘗試使用「localhost」而不是127.0.0.1 – 2012-01-12 04:27:21

+0

從終端嘗試mysqld_safe或sudo mysqld_safe。你的數據庫沒有運行。 – 2012-01-12 04:28:25

回答

3

嘗試:

development: 
    adapter: mysql 
    database: app_development 
    username: root 
    password: 
    socket: /var/lib/mysql/mysql.sock 

然後做你的rake db:create從軌道創建它。

in mysql do create database db_name
然後上面的代碼爲:development會讓你使用它。

更新:馬修首先需要在他的(Mac)機器上安裝mySQL。
我指示他到http://dev.mysql.com/downloads/mysql/

+0

不,我得到同樣的錯誤:無法通過套接字'/tmp/mysql.sock'連接到本地MySQL服務器(2) 我怎麼知道要放什麼數據庫:字段沒有實際創建數據庫?基本上,我只是克隆這個回購,並試圖讓它工作。我沒有創建數據庫,我沒有正確的database.yml設置。什麼是一步一步的過程,讓這個工作?我捆綁安裝的一切,它通過罰款。 – 2012-01-12 04:45:15

+0

我完全按照您的說明製作了database.yml文件。然後我做了捆綁exec rake db:create(需要bundle exec),但是我得到這個錯誤:無法通過套接字'/tmp/mysql.sock'(2)連接到本地MySQL服務器。我不知道如何做到這一點「在MySQL」 – 2012-01-12 04:54:01

+0

添加套接字:/var/lib/mysql/mysql.sock到yml文件,並得到這個錯誤:無法通過套接字'/ var/lib連接到本地MySQL服務器/mysql/mysql.sock'(2) – 2012-01-12 04:55:22

0

首先,嘗試執行以下命令,檢查您是否從命令提示符(不帶Ruby on Rails)連接到mysql。

mysql -u root 

如果不能連接你可能指定的密碼。您需要記住它或重新安裝MySQL。如果可以,那麼創建數據庫:

create database app_development; 

最後,但並非最不重要的,去掉前綴「DB /」從database.yml的。你不需要一個完整的路徑:

database: app_development 

希望幫助!

1

明確提到你port: 3306在你的database.yml

如果不工作,那麼執行

netstat -tupln 

,並檢查如果MySQL監聽端口3306或不

0

如果你不不介意你使用的數據庫軟件(我不認爲你指定了你是否需要MySQL或者只是想讓repo工作),你可以嘗試使用SQLite3。 SQLite3不運行服務器或使用端口,因此您可能更容易進行設置。

嘗試模仿rails默認數據庫。陽明海運,它看起來像:

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

然後加入gem 'sqlite3'到你的Gemfile和運行bundle install

希望這有助於!

0

它也可以通過更改MySQL版本來解決。與一些使用MySQL 5.5開發的項目相同的問題,但在我的Mac中安裝的版本是MySQL 5.7,所以我不得不降級我的版本,它爲我工作。

相關問題