MySQL 8.0-客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端

由于某种原因,我无法与服务器建立简单的连接。我使用默认设置安装了最新的MySQL Community 8.0数据库和Node.JS

这是我的node.js代码

var mysql=require(’mysql’);
var con=mysql.createConnection({
主机:“本地主机”,
用户:“根”,
密码:“密码”,
不安全认证:对
});
con.connect(功能(错误){
如果(错误)抛出错误;
console.log(“已连接!”);
});

下面是在命令提示符中发现的错误:

C:\Users\mysql测试>node app.js
C:\Users\mysql test\node\u modules\mysql\lib\protocol\Parse
r、 js:80
抛出错误;//重新显示非MySQL错误
^
错误:ER\u不支持\u身份验证模式:客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端
在Handshake.Sequence.\u packetToError(C:\Users\mysql-
test\node\u modules\mysql\lib\protocol\sequences\Sequence.js:52:14)
在Handshake.ErrorPacket(C:\Users\mysql-test\node\u-mo
dules\mysql\lib\protocol\sequences\Handshake.js:130:18)
at协议。解析数据包(C:\Users\mysql test\node\u mo
dules\mysql\lib\protocol\protocol.js:279:23)
在Parser.write(C:\Users\mysql test\node\u modules\mys
ql\lib\protocol\Parser.js:76:12)
在Protocol.write(C:\Users\mysql test\node\u modules\m
ysql\lib\protocol\protocol.js:39:16)
在插座处。<匿名>(C:\Users\mysql test\node\u模块
es\mysql\lib\Connection.js:103:28)
在Socket.emit(events.js:159:13)
在addChunk(_stream_readable.js:265:12)
在readableAddChunk(_stream_readable.js:252:11)
在Socket.Readable.push(_stream_Readable.js:209:10)
--------------------
at协议。\u排队(C:\Users\mysql test\node\u模块
s\mysql\lib\protocol\protocol.js:145:48)
在Protocol.handshake(C:\Users\mysql test\node\u module)
es\mysql\lib\protocol\protocol.js:52:23)
在Connection.connect(C:\Users\mysql test\node\u module)
es\mysql\lib\Connection.js:130:18)
反对。<匿名>(C:\Users\mysql test\server.js:
11:5)
在模块处编译(Module.js:660:30)
在Object.Module.\u extensions..js(Module.js:671:10)
在Module.load(Module.js:573:32)
在tryModuleLoad时(module.js:513:12)
在Function.Module.\u加载(Module.js:505:3)
位于Function.Module.runMain(Module.js:701:10)

我读过一些东西,比如:
https://dev.mysql.com/doc/refman/5.5/en/old-client.html
https://github.com/mysqljs/mysql/issues/1507

但我仍然不知道如何解决我的问题。任何帮助都将不胜感激:D

在MYSQL工作台中执行以下查询

通过“password”更改用mysql_native_密码标识的用户“root”@“localhost”

其中root作为您的用户
localhost作为您的URL
密码作为您的密码

然后运行此查询以刷新权限:

flush特权

完成此操作后,请尝试使用节点进行连接

如果这不起作用,请尝试不使用@'localhost'部分

发表评论