![](/img/trans.png)
[英]Node.js & MySQL - Error: 1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
[英]Node JS and mysql not connecting (client does not support authentication protocol requested by server consider upgrading mysql client)
我正在尝试将我的 NodeJs 应用程序与 mysql 数据库连接,但由于某种原因它没有连接。
我确实像这样安装了 mysql npm(在命令行中输入):
npm install mysql
安装 mysql npm 后,我创建了一个 index.js 文件,并在该文件中尝试与我的数据库建立连接。
这是我的 index.js 文件中与 mysql 建立连接的代码:
const mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
port : '3306',
password : 'test12310',
database : 'fys'
});
connection.connect((err) => {
if(!err)
console.log('Database is geconnect!');
else
console.log('Database connectie niet gelukt! : '+ JSON.stringify(err, undefined,2));
});
然后我尝试运行代码,看看与 mysql 的连接是否有效。 我在命令行中输入:
node index.js
这是我在命令提示符中收到的错误消息:
有谁知道我如何修复此错误并在 nodejs 中与我的 mysqldatabase 建立连接?
任何形式的帮助表示赞赏
使用新的mysql2库代替mysql以使用 MySQL 8.0 的新身份验证方法
~ 在节点版本 13.6.0 和 MySQL 8.0.21 中测试
我在使用mysql
库时遇到了同样的问题,我通过更改为mysql2
库修复了该错误我建议您安装mysql2
跑
npm install mysql2
然后
import mysql from "mysql2";
或者
const mysql = require("mysql2")
我希望这对你有用!! 祝你好运
代替
mysqlConnection.connect((err) => {
用
connection.connect((err) => {
if(!err)
console.log('Database is connected!');
else
console.log('Database not connected! : '+ JSON.stringify(err, undefined,2));
});
对于您的 mysql 错误:
在 MYSQL Workbench 中执行以下查询:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
这样做后尝试使用节点连接。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourRootPassword';
-- or
CREATE USER 'foo'@'%' IDENTIFIED WITH mysql_native_password BY 'bar';
-- then
FLUSH PRIVILEGES;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.