除虫计划 MySQL加密方式相关错误

MySQL 修改了默认加密方式,因此可能会导致一些问题,本文将介绍如何解决。

一、问题

使用 Node.js 连接 MySQL 时,报错如下:

‘Client does not support authentication protocol requested by server; consider upgrading MySQL client’

‘Client does not support authentication protocol requested by server; consider upgrading MySQL client’

二、原因

经检查,用户名和密码均正确,使用其它方式也能正常连接到数据库。

原因是 MySQL 版本较新,加密方式与旧版本相比发生了改变,因此即使密码正确也无法认证成功。

三、解决方法一

假设用户名为 root ,密码为 111111

1. 登录数据库

1
mysql -uroot -p111111

2. 修改加密方式

1
ALTER USER 'root'@'localhost' IDENTIFIED BY '111111' PASSWORD EXPIRE NEVER;

3. 更新密码

1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '111111';

4. 刷新

1
FLUSH PRIVILEGES;

5. 退出

1
exit

四、解决方法二

可以通过安装 MariaDB 解决

需要注意的是:应该在安装时修改端口号,以避免与原有的 mysql 冲突。

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

五、解决方法三

卸载 MySQL,重新安装 5.7 版本。