簡體   English   中英

# <Mysql2::Error: 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 specrake test ,而development數據庫則在使用rails(例如rails generaterails 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM