原创

MYSQL8调整登录认证方式

因为最近有多个项目需要访问同一数据库,计划使用阿里云的RDS云数据库mysql8版本,但是因为有部分项目连接驱动版本较低,阿里云的数据库配置调整了好久还是会连接不成功,最后决定在云主机上自己安装一个数据库,然后调整登录认证方式使其兼容旧版驱动。

1.安装mysql8

参考:linux系统通过rpm包安装mysql8

2.查询当前认证方式

SELECT user, host, plugin FROM mysql.user;

可以看到所有用户的认证方式都是caching_sha2_password,而旧版本常用mysql_native_password方式,所以我们需要修改一下。

3.修改用户认证方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Mysql8.pwd';

注:需要将其中的用户名密码替换。

4.刷新权限

FLUSH PRIVILEGES;

刷新权限后重新登录,发现通过命令行可以登录了,但是项目还是提示报错:

我们再查一下认证方式:

可以看到值已经变了,但是项目还是不能连接,在查了一些资料后发现,这里可能是因为mysql服务器的默认登录验证方式影响,所以还需要修改mysql的配置文件。

5.修改服务器默认登录认证方式

在配置文件中[mysqld]下新增下面配置:

[mysqld]
default_authentication_plugin=mysql_native_password

修改完成后重启数据库:

systemctl restart mysqld

重启完成后再重新连接就可以成功连接了。


扩展说明:

1.从caching_sha2_password切换到mysql_native_password后,通常需要重置密码。

2.因为是通过公网访问数据库,可以在配置文件中新增skip-name-resolve参数跳过DNS解析提高连接速度。

正文到此结束
本文目录