node-连接-mysql-报错-ERNOTSUPPORTEDAUTHMODE

56次阅读

共计 733 个字符,预计需要花费 2 分钟才能阅读完成。

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

一图胜前言:


正文完
 0