共计 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
一图胜前言:
正文完