node 版本 v12.12.0

mysql 版本 8.0

我再家尝试使用node连接mysql数据库的时候,发现连接不上。

报错信息显示为:

{

"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

}

经过多番查询资料,得到的答案是,因为mysql8.0默认的密码认证方案是'caching_sha2_password',而目前node默认的密码认证方案是'mysql_native_password',所以即使密码是对的,但是却无法认证成功。

root:用户名

asd123456: 密码

解决方案:

1、使用管理员运行命令提示符

2、进入到mysql安装目录的bin目录下默认安装路径大概是(C:\Program Files\MySQL\MySQL Server 8.0\bin)

3、在命令提示行中键入: mysql -u root -p

4、mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'asd123456';此时得到提示Query OK, 0 rows affected (0.01 sec),这里是修改密码的认证方式

5、mysql> flush privileges;此时得到提示Query OK, 0 rows affected (0.01 sec),这里是重启权限

6、mysql> exit 退出mysql

一图胜前言:

a817acd88a2a9695d187817c86445b6b.png

ac12f679cb353151b913ae2a3635c70e.png

03cd22c5e21dcbdecfb35281619654f3.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐