首頁  >  文章  >  資料庫  >  為什麼從 Node.js 連線到 MySQL 時會出現「ER_NOT_SUPPORTED_AUTH_MODE」錯誤?

為什麼從 Node.js 連線到 MySQL 時會出現「ER_NOT_SUPPORTED_AUTH_MODE」錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-10 02:14:02286瀏覽

Why am I Getting

MySQL-Node.js 連線中的「ER_NOT_SUPPORTED_AUTH_MODE」錯誤故障排除

「ER_NOT_SUPPORTED_AUTH_DE以下原因無法與MySQL伺服器建立連線不支援的身份驗證協定。當 MySQL 伺服器需要用戶端不支援的特定身份驗證方法時,就會出現此問題。

在您的情況下,您已從 MariaDB 升級到 MySQL。但是,您使用的 JavaScript 連線片段可能仍在使用 MariaDB 驗證協議,MySQL 8.0 及以上版本不支援該協定。

解決方案:

解決此問題,您需要升級 Node.js 用戶端以支援 MySQL 原生驗證協定。該協定兼容 MariaDB 和 MySQL 伺服器。

對於 MySQL 8.0 以上版本,使用以下指令更新 root 使用者的驗證方法:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

將「root」替換為使用者名稱和「密碼」以及所需的密碼。

更新驗證方法後,執行以下命令以啟動變更:

FLUSH PRIVILEGES;

現在,修改您的JavaScript 連線片段以使用MySQL 本機協定:

var mysql = require('mysql');

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'foobarDb',
    authPlugin: 'mysql_native_password' // specify the MySQL native authentication protocol
});

這應該解決“ER_NOT_SUPPORTED_AUTH_MODE”錯誤並允許您連接到MySQL來自Node.js 伺服器的資料庫。

以上是為什麼從 Node.js 連線到 MySQL 時會出現「ER_NOT_SUPPORTED_AUTH_MODE」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn