將Node.js 伺服器連線到Client does不支援伺服器要求的身份驗證協定。
問題分析
錯誤訊息顯示 MySQL 伺服器配置為使用較新的驗證協定Node.js 用戶端不支援。如果 Node.js 用戶端版本過時,就會出現這種情況。
解決方案
要解決此問題,請升級 Node.js 用戶端以支援使用的較新身份驗證協定由MySQL伺服器。對於 MySQL v8.0,請按照以下步驟操作:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES;
請記得將「root」和「password」替換為實際使用者名稱和所需密碼。這些變更需要應用於嘗試連線的使用者。
程式碼片段(已更新)
更新MySQL 配置和使用者權限後,Node.應更新Node.js 連接片段以使用mysql2 函式庫支援較新的驗證協定:
const mysql = require('mysql2'); const connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'password', database : 'foobarDb' });
透過實作下列步驟,您可以成功在Node.js 伺服器和MySQL 資料庫之間建立連接,消除「ER_NOT_SUPPORTED_AUTH_MODE」錯誤。
以上是如何修復 Node.js 連接 MySQL 時出現“ER_NOT_SUPPORTED_AUTH_MODE”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!