我正在 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/