嘗試生成應用程序時出現以下錯誤。#<Mysql2 ::錯誤:拒絕訪問用戶'root'@'localhost'(使用密碼:否)>
我有我的數據庫登錄信息一database.yml的,但不知道這個錯誤到底是什麼。有誰知道它是什麼?
我假設它是驗證登錄到測試數據庫。
嘗試生成應用程序時出現以下錯誤。#<Mysql2 ::錯誤:拒絕訪問用戶'root'@'localhost'(使用密碼:否)>
我有我的數據庫登錄信息一database.yml的,但不知道這個錯誤到底是什麼。有誰知道它是什麼?
我假設它是驗證登錄到測試數據庫。
確保您的db用戶名和密碼已配置爲development
環境,而不僅僅是test
環境。初始rails應用程序設置在那裏。
的test
數據庫由測試中使用,如rake spec
或rake test
,當你使用Rails如rails generate
或rails 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
我已經開發了,我認爲它需要root用戶沒有密碼的問題。 – FluxEngine
它不需要,它只是默認值。更改'config/database.yml'是你重寫默認值的方法。 –
你是對的,但對於這個特定的應用程序,你不能改變database.yml,它需要root用戶/沒有PW。謝謝 – FluxEngine
爲什麼你想擁有root用戶訪問你的應用程序?
建議您創建一個不同的用戶並將所有權限授予此用戶,然後使用這些憑證配置您的database.yml。
我想貢獻一下我的答案。 這聽起來有點像業餘愛好者,但它可能會幫助一些和我有同樣問題的可憐的傢伙。
我有我的database.yml
配置這樣的密碼:
development:
<<: *default
database: my_db_name
username: my_username
password: !?my_password913
這是一個新手的錯誤,但它搞砸了我幾分鐘。 如果您使用特殊字符,請確保您使用引號包裝密碼!例如將評估爲假的布爾表達式,這將使mysql2
忽略密碼字段併發送password=no
謝謝!
你沒有正確的用戶/密碼設置連接到你的MySQL分區 – Magicmarkker
這就是我的想法。嗯...好的。 – FluxEngine
你可以連接使用:mysql -u root或者你需要一個密碼,如mysql -u root -p?如果您需要密碼,請檢查您的database.yml並確保您確實擁有指定的用戶名和密碼。事實上,如果你仍然遇到麻煩,在這裏如何從你的database.yml粘貼你的開發設置。 – rainkinz