前情
在vscode中使用mysql模块测试mysql模块是否能正常工作时,结果给我抛出来了一个异常:
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support auhentication protocol requested by server; consider upgrading MySQL client
如图:
原因
node.js提供的mysql模块并未完全支持MySQL 8.0及以上的“caching_sha2_password”加密方式,而“caching_sha2_password”在MySQL 8.0中是默认的加密方式。
解决办法
- 打开cmd终端,先登入MySql(建议用管理员模式打开)。输入如下命令:
mysql -u root -p
- 更改加密方式为普通加密模式(8.0版本默认为严格加密模式)。输入如下命令:(我的密码是666)
alter user 'root'@'localhost' identified with mysql_native_password by '你的数据库密码';
- 刷新权限,输入如下命令:(注意mysql语句每一句结束都要加分号!!!)
flush privileges;
刷新成功。我去重新测试了一下。哎,成功了👌。