![](/img/trans.png)
[英]Rails and Mysql2 Access denied for user 'root'@'localhost' (using password: NO)
[英]#<Mysql2::Error: Access denied for user 'root'@'localhost' (using password: NO)>
嘗試生成應用程序時出現以下錯誤。
我的數據庫登錄信息中有一個database.yml,但不確定該錯誤是什么。 有誰知道它是什么?
我假設這是驗證登錄到測試數據庫。
確保為development
環境(而不僅僅是test
環境)配置了數據庫用戶名和密碼。 初始Rails應用程序設置在那里。
test
數據庫供測試(例如rake spec
或rake test
,而development
數據庫則在使用rails(例如rails generate
或rails console
。
典型設置如下:
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用戶訪問您的應用程序?
建議您創建一個不同的用戶並授予該用戶所有特權,然后使用這些憑據配置database.yml。
我想為此做出貢獻。 聽起來有點業余,但可能會幫助一些跟我有同樣問題的可憐家伙。
我在database.yml
輸入了如下密碼:
development:
<<: *default
database: my_db_name
username: my_username
password: !?my_password913
這是一個菜鳥的錯誤,但這讓我呆了幾分鍾。 如果使用特殊字符,請確保將密碼用引號引起來,因為! 例如將評估為false的布爾表達式,這將使mysql2
忽略密碼字段並發送password=no
謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.