MySQL8 Bug 记录

发布时间 2023-07-16 10:10:21作者: ivanohohoh

配置相关

MySQL8 安全插件更新导致的兼容性问题

mysql8 提供了新的功能,这些功能会影响用户创建或更新用户密码,以及使用那些仅支持 mysql5 登陆方式的客户端工具

Password Validation Options and Variables

Authentication Plugins

密码验证组件

该组件要求用户必须设置符合一定复杂度的密码

可以通过设置 mysql 全局变量来关闭此行为:

# 关闭
set global validate_password.policy=0;
# 查看
show variables where show variables = 'validate_password.policy';

身份验证插件

新的工具提供更强大的能力,但是存在与旧应用的不兼容问题,该怎么办?

mysql8 使用了新的 cahcing_sha2_password 作为默认的身份验证插件,之前使用的是 mysql_native_password 插件。所以部分客户端工具还不支持这种身份验证方式,导致不兼容问题。

修改用户的身份验证插件为旧版的

# 查看用户使用的验证插件
select User, plugin from mysql.user;

# 更新当前用户的验证插件为 mysql_native_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

# 使用 mysql_native_password 插件来创建用户
CREATE USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';