今天新建一个koa项目,启动调用mysql驱动的时候报该错误。
solution:
在系统mysql终端输入下面命令,重启koa进程即可。
//yourpassword 是你的数据库账户密码,root和host也是
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
大意是8.0.4开始mysql引入一个caching_sha2_password模块作为默认身份验证插件,数据库连接时验证身份的工作方式(handshake process)会与以往不同。
但以前版本的通过mysql_native_password 创建的账户仍然可以正常工作,只是验证这些账户时会切回mysql_native_password的工作方式,以此实现向下兼容。
nodejs版本尚未跟进caching_sha2_password的实现,所以需要通过上面命令来手动切换验证账号方式。