【问题标题】:Error code ER_NOT_SUPPORTED_AUTH_MODE - Can't connect mysql错误代码 ER_NOT_SUPPORTED_AUTH_MODE - 无法连接 mysql
【发布时间】:2022-11-13 04:06:32
【问题描述】:

我在 MySQL 中创建了一个数据库,并想将它与 JS 连接起来。以下是我为此编写的代码,但出现错误。

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));
});

我试图更改主机的名称,并撤销和授予权限(也不能这样做)。删除并重新创建数据库并再次尝试连接。我应该连接到我的数据库,但它导致了一个我无法理解的错误。错误信息如下:

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
}

更改主机名后:

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
}

【问题讨论】:

    标签: javascript mysql node.js database-connection


    【解决方案1】:

    对于第一个错误“客户端不支持服务器请求的身份验证协议;考虑升级 MySQL 客户端”,您需要:

    1. 确保您的 DLL 文件“libmySQL.dll”是最新的。
    2. 也许您的帐户是使用“旧身份验证协议密码”创建的,而服务器现在使用“新身份验证协议密码”。有关信息,请查看documentaion。

      对于第二个错误“Host 'Mistycyrus.bbrouter' is not allowed to connect to this MySQL server”,您正在使用用户 'someone'@'Mistycyrus.bbrouter' 进行连接,并且不允许该用户连接。

      1. 按字路由器,它可能与您的路由器有关,因为我之前看到过与 Thomson 路由器类似的东西。
      2. 检查您的主机文件。确保 hosts 文件包含 127.0.0.1 localhost 行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-13
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 2018-10-07
      相关资源
      最近更新 更多