MySQL 8.0 的Node.js 驗證問題
之前使用root 帳戶連接到MySQL 資料庫的Node.js 應用程式可能會遇到到身份驗證錯誤由於預設身份驗證插件的變更而升級到MySQL 8.0 時。
理解問題
MySQL 8.0 現在使用 caching_sha2_password 作為預設驗證插件,而 MySQL 5.7 使用 mysql_native_password。 MySQL 的某些 Node.js 驅動程式目前缺乏對新外掛程式的相容身份驗證機制的支援。
可能的解決方案
要解決此問題,請考慮實施以下任一方法解決方法:
更改使用者帳戶:
更改root 使用者帳戶以使用舊的mysql_native_password 外掛:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
建立新使用者:
建立使用 mysql_native_password的新用戶帳戶外掛:
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
結論
Node.js 和MySQL 8.0之間的身份驗證問題源自於預設身份驗證插件的變更。提供的解決方法允許使用者使用舊插件或官方 MySQL 連接器來維護 MySQL 連接。建議透過密切關注 MySQL 的 Node.js 驅動程式更新來實施永久解決方案。
以上是升級到 MySQL 8.0 後如何解決 Node.js 驗證問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!