node连接mysql:R_NOT_SUPPORTED_AUTH_MODEClientdoesnotsupportauthenticationprotocolrequestedbyserver
解决node或者eggjs连接Docker中的mysql时候:ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client 错误
我在用eggjs搭建后台项目, 连接本地用Docker启动的mysql数据库时候, 报了一个错误
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL clien
这个错误的原因是: 最新版本的mysql账号密码用的是最新的加密方式: 目前node还不支持这个连接方式
进入mysql数据库查询
select user,host, plugin FROM user;
解决方法:
修改mysql数据库中的root的密码加密方法就行了;
先use mysql
然后运行 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
把password
修改为你的密码
然后在查询一下select user,host, plugin FROM user;
OK!
最后别忘了刷新一下权限
运行FLUSH PRIVILEGES
再使用node或egg连接数据库就可以了!