Node.js 無法驗證 MySQL 8.0
Node.js 應用程式升級後連接 MySQL 資料庫遇到困難到 MySQL 8.0。此問題源自於 root 帳號使用新的 caching_sha2_password 雜湊方法。
驗證機制差異
MySQL 8.0 引入了新的預設驗證外掛 caching_sha2_password,而 MySQL 5.7 採用了新的預設驗證外掛程式 caching_sha2_password,而 MySQL 5.7 採用了新的預設驗證外掛程式 caching_sha2_password,而 MySQL 5.7 採用了新的預設驗證外掛程式_sha2_password。不幸的是,目前 MySQL 的 Node.js 驅動程式缺乏對相容的客戶端身份驗證機制的支援。
建立連線的解決方法
解決方法是將 root 使用者帳戶更改為使用舊的 mysql_native_password外掛程式:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
或者,您可以使用相同的名稱建立新使用者驗證外掛程式:
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
替代連接器
替代連接器官方MySQL Node.js連接器,基於X協議,支援新的身份驗證模式,並提供可行的替代方案.
拉取解決請求拉取目前正在請求社群MySQL 驅動程式中解決此問題。
結論Node.js 應用程式可以透過使用提到的解決方法成功連接到MySQL 8.0上面或使用官方MySQL Node.js 連接器,它為新的身份驗證機制提供本機支援。以上是如何解決 MySQL 8.0 的 Node.js 驗證問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!