首頁  >  問答  >  主體

無法連線到MySQL - 錯誤代碼ER_NOT_SUPPORTED_AUTH_MODE

<p>我在MySQL中建立了一個資料庫,並想用JS連接它。下面是我為此編寫的程式碼,但出現錯誤。 </p> <pre class="brush:php;toolbar:false;">const mysql = require('mysql'); var mysqlConnection = mysql.createConnection({ host: 'localhost', user:'root', password:'********', database:'EmployeeDB' }); mysqlConnection.connect((err) => { if (!err) console.log('DB Connection Succeded'); else console.log('DB Connection Failed \n Error :' JSON.stringify(err, undefined, 2)); });</pre> <p>我嘗試更改主機的名稱,並撤銷和授予權限(都無法做到)。刪除並重新建立資料庫並再次嘗試連線。我本來應該連接我的資料庫,但它導致了一個我無法理解的錯誤。錯誤訊息如下:</p> <pre class="brush:php;toolbar:false;">DB Connection Failed Error :{ "code": "ER_NOT_SUPPORTED_AUTH_MODE", "errno": 1251, "sqlMessage": "Client does not support authentication protocol requested by server; consider upgrading MySQL client", "sqlState": "08004", "fatal": true }</pre> <p>更改主機名稱後:</p> <pre class="brush:php;toolbar:false;">DB Connection Failed Error :{ "code": "ER_HOST_NOT_PRIVILEGED", "errno": 1130, "sqlMessage": "Host 'Mistycyrus.bbrouter' is not allowed to connect to this MySQL server", "fatal": true }</pre></p>
P粉736935587P粉736935587420 天前467

全部回覆(1)我來回復

  • P粉546138344

    P粉5461383442023-08-27 10:53:59

    對於第一個錯誤“客戶端不支援伺服器請求的身份驗證協定;考慮升級 MySQL 用戶端”,您需要:

    1. 確保您的 DLL 檔案「libmySQL.dll」是最新的。
    2. 也許您的帳戶是使用「舊身份驗證協定密碼」建立的,而伺服器現在使用「新身份驗證協定密碼」。有關信息,請參閱文檔

    對於第二個錯誤“Host 'Mistycyrus.bbrouter' is not allowed to connect to this MySQL server”,您正在使用用戶'someone'@'Mistycyrus.bbrouter'進行連接,並且該用戶是不允許連線。

    1. 根據bbrouter這個詞,它可能與您的路由器有關,因為我以前見過與湯姆森路由器類似的東西。
    2. 檢查您的主機檔案。確保主機檔案包含行 127.0.0.1 localhost

    回覆
    0
  • 取消回覆