繁体   English   中英

Node JS和mysql连接不上(客户端不支持服务器请求的认证协议考虑升级mysql客户端)

[英]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));
});

[这里是代码的教程参考] 1

对于您的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM