错误描述:Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication
错误原因:mysql8.0以上加密方式,Node还不支持。
解决方式:使用mysql_native_password
参数修改密码,例如:
alter user 'admin'@'localhost' identified with mysql_native_password by '123456'
此时,引发了问题1:ERROR 1396 (HY000): Operation ALTER USER failed for 'admin'@'localhost'
无奈之下,root用户登陆后,使用mysql_native_password
新建一个用户试试:
create user 'superadmin'@'localhost' identified WITH mysql_native_password by '123456';
新建用户成功,但需要远程访问,所以需要授权:
grant all on *.* to superadmin;
此时,又一次引发了问题2: ERROR 1410 (42000): You are not allowed to create a user with GRANT
最后根据 这个方案,成功解决问题2:
use mysql;
update user set host='%' where user='superadmin';
grant all on *.* to superadmin@'%';
此时,回过头来看,原来问题1根源出在’localhost’这里,因此,问题1的解决方案如下::
update user set host='%' where user='admin';
alter user 'admin'@'%' identified with mysql_native_password by '123456'
参考资料: