mysql - errno : 1251, sqlMessage: '客户端不支持服务器请求的认证协议(protocol);考虑升级 MySQL 客户端

标签 mysql node.js express mysql-workbench

我正在 nodejs 中创建简单的 api 项目。

为此,我安装了 8.0.11 版的 mySql workbench。 我创建了配置文件 dbConnection.js 文件,并在 dbconnection.js 文件中编写了以下代码:

var mysql = require('mysql');
var path = require('path');
var config = require(path.resolve('./', 'config'))

var connection = mysql.createConnection({
    host: config.databaseHost,
    user: config.databaseUser,
    password: config.databasePassword,
    database: config.databaseDatabaseName,
    multipleStatements: true
});

connection.connect(function (err) {
    if (err) {
        console.log('Error connecting to Database',err);
        return;
    }
    console.log('Connection established');
});
module.exports = connection;

我正面临以下错误:

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

注意:我的配置尽可能简单,用户 = root,密码 = root,主机 = localhost。

最佳答案

一旦你在你的 MySQL 连接函数中建立了你的主机、root、密码等。将以下内容粘贴到你的数据库中,你正在尝试在工作台中使用以下内容进行连接:

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

回到终端并运行node <file name.js>再次

关于mysql - errno : 1251, sqlMessage: '客户端不支持服务器请求的认证协议(protocol);考虑升级 MySQL 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51147964/

相关文章:

php - 登录我的网站管理部分时出现问题

mysql - SQL INNER JOIN 多个表和列

javascript - 尝试使用 node.js 遍历 dropbox 文件夹树

node.js - Chrome 的跟踪事件分析工具中的自上而下(树)、自上而下(重)和自下而上(重)有什么区别

node.js - 为什么 mailgun 只向授权收件人发送电子邮件?

node.js - 使用JWT token 时应如何处理RESTful身份验证?

javascript - Ajax DELETE 请求似乎仅删除列表中的第一项

mysql - 如何将 SUM 与两个不同表中的 INNER JOIN 结合使用

php - POST 查询错误

node.js - 如何根据数组中的数据过滤我的集合?