MYSQL8调整登录认证方式
因为最近有多个项目需要访问同一数据库,计划使用阿里云的RDS云数据库mysql8版本,但是因为有部分项目连接驱动版本较低,阿里云的数据库配置调整了好久还是会连接不成功,最后决定在云主机上自己安装一个数据库,然后调整登录认证方式使其兼容旧版驱动。
1.安装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解析提高连接速度。
正文到此结束
- 本文标签: Mysql C#
- 本文链接: https://blog.eyyyye.com/article/101
- 版权声明: 本文由爱做梦的比特原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
