先执行SHOW VARIABLES LIKE 'validate_password%',若返回空则插件未加载;若返回变量再查SELECT * FROM information_schema.plugins WHERE plugin_name = 'validate_password'确认状态为ACTIVE,方可进行禁用操作。

确认 validate_password 插件是否已启用
禁用前得先知道它是不是真在运行。执行 SHOW VARIABLES LIKE 'validate_password%'; —— 如果返回空结果,说明插件压根没加载,根本不用“禁用”;如果返回一堆 validate_password_* 变量(比如 validate_password_policy、validate_password_length),那它就在生效中。
更稳妥的方式是查插件状态:SELECT * FROM information_schema.plugins WHERE plugin_name = 'validate_password';。若 PLUGIN_STATUS 是 ACTIVE,才需要下一步操作。
直接关闭插件的两种方式
MySQL 5.7 不支持“卸载”插件,但可以通过配置让其失效。最可靠的是改配置文件 + 重启:
- 编辑
/etc/my.cnf或/etc/mysql/my.cnf,在[mysqld]段下添加一行:validate_password=off - 删掉或注释掉可能存在的
plugin-load-add=validate_password.so和validate_password=FORCE_PLUS_PERMANENT - 重启 MySQL:
systemctl restart mysqld(或service mysql restart)
重启后再次执行 SHOW VARIABLES LIKE 'validate_password%';,应返回空——说明策略已彻底退出。
注意:不要用 UNINSTALL PLUGIN validate_password;,5.7 不支持该语法,会报错 ERROR 1305 (42000): PROCEDURE mysql.UNINSTALL_PLUGIN does not exist。
解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。
临时绕过策略(不推荐长期用)
如果无法重启服务,又急需设一个简单密码(比如测试环境快速恢复),可临时调低策略等级:
-
SET GLOBAL validate_password_policy = LOW;—— 此时只校验长度,不检查数字、大小写、特殊字符 -
SET GLOBAL validate_password_length = 4;—— 把最小长度设到最低允许值(注意:实际最小值受其他参数约束,如validate_password_number_count + validate_password_special_char_count + 2 * validate_password_mixed_case_count,设为 4 通常安全)
⚠️ 这种方式只是“弱化”,不是禁用;且重启后失效,还可能被运维策略覆盖。生产环境切勿依赖。
为什么改了配置却不生效?常见坑点
最常踩的三个坑:
- 只改了配置文件,忘了重启
mysqld—— MySQL 5.7 的插件加载是启动时一次性行为,运行中改配置无效 - 配置写错位置:必须放在
[mysqld]段下,写到[client]或文件开头会导致静默忽略 - 配置项名写成 SQL 风格:比如写成
validate_password.policy = off(带点号)或validate_password_policy = off(下划线格式),正确写法只有validate_password=off
另外,某些 RPM 安装包会自带 /etc/my.cnf.d/ 下的额外配置文件,记得一并检查,避免被覆盖。

















