2013-02-06 69 views
1

嘗試生成應用程序時出現以下錯誤。#<Mysql2 ::錯誤:拒絕訪問用戶'root'@'localhost'(使用密碼:否)>

我有我的數據庫登錄信息一database.yml的,但不知道這個錯誤到底是什麼。有誰知道它是什麼?

我假設它是驗證登錄到測試數據庫。

+8

你沒有正確的用戶/密碼設置連接到你的MySQL分區 – Magicmarkker

+0

這就是我的想法。嗯...好的。 – FluxEngine

+0

你可以連接使用:mysql -u root或者你需要一個密碼,如mysql -u root -p?如果您需要密碼,請檢查您的database.yml並確保您確實擁有指定的用戶名和密碼。事實上,如果你仍然遇到麻煩,在這裏如何從你的database.yml粘貼你的開發設置。 – rainkinz

回答

4

確保您的db用戶名和密碼已配置爲development環境,而不僅僅是test環境。初始rails應用程序設置在那裏。

test數據庫由測試中使用,如rake specrake test,當你使用Rails如rails generaterails console工作development數據庫使用。

一個典型的設置如下:

development: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: foo_development 
    pool: 5 
    username: db_username 
    password: db_password 
    socket: /tmp/mysql.sock 

test: 
    adapter: mysql2 
    encoding: utf8 
    reconnect: false 
    database: foo_test 
    pool: 5 
    username: db_username 
    password: db_password 
    socket: /tmp/mysql.sock 
+0

我已經開發了,我認爲它需要root用戶沒有密碼的問題。 – FluxEngine

+0

它不需要,它只是默認值。更改'config/database.yml'是你重寫默認值的方法。 –

+0

你是對的,但對於這個特定的應用程序,你不能改變database.yml,它需要root用戶/沒有PW。謝謝 – FluxEngine

0

爲什麼你想擁有root用戶訪問你的應用程序?

建議您創建一個不同的用戶並將所有權限授予此用戶,然後使用這些憑證配置您的database.yml。

0

我想貢獻一下我的答案。 這聽起來有點像業餘愛好者,但它可能會幫助一些和我有同樣問題的可憐的傢伙。

我有我的database.yml配置這樣的密碼:

development: 
    <<: *default 
    database: my_db_name 
    username: my_username 
    password: !?my_password913 

這是一個新手的錯誤,但它搞砸了我幾分鐘。 如果您使用特殊字符,請確保您使用引號包裝密碼!例如將評估爲假的布爾表達式,這將使mysql2忽略密碼字段併發送password=no

謝謝!

相關問題