确认已安装并运行 MySQL/MariaDB:sudo systemctl status mysql(或 mariadb)。
登录数据库:mysql -u root -p。
检查是否安装了密码验证组件(MySQL 5.7/8.0 常见):
SHOW PLUGINS; 或 SHOW VARIABLES LIKE ‘validate_password%’;
若未启用,可在 mysql 客户端中安装(MySQL 5.7/8.0):
INSTALL COMPONENT ‘file://component_validate_password’;
查看当前策略与长度下限:
SHOW VARIABLES LIKE ‘validate_password%’;
常见变量:validate_password_policy(或 validate_password_check_user_name)、validate_password_length、validate_password_number_count、validate_password_mixed_case_count、validate_password_special_char_count。
调整示例(放宽到“低”强度,仅作演示,生产请谨慎):
MySQL 5.7:
SET GLOBAL validate_password_policy=LOW;
SET GLOBAL validate_password_length=8;
SET GLOBAL validate_password_number_count=1;
SET GLOBAL validate_password_mixed_case_count=1;
SET GLOBAL validate_password_special_char_count=1;
MySQL 8.0(若变量不存在,说明使用新组件,见下一节):
可通过 ALTER USER … REQUIRE 子句控制账户口令策略(复杂度由组件内置,强度级别在组件安装时确定)。
设置阈值(示例:失败 5 次后触发,逐步增加延迟):
SET GLOBAL connection_control_failed_connections_threshold=5;
SET GLOBAL connection_control_min_connection_delay=1000;(单位:毫秒)
提示:MariaDB 的密码复杂度与过期机制与 MySQL 略有差异,名称与启用方式可能不同,请以实际版本为准。
某些场景下需要切换认证插件(例如应用不兼容 caching_sha2_password):
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘YourNewStrongP@ssw0rd’;
FLUSH PRIVILEGES;
注意:切换插件会影响认证方式与安全性,请评估后再变更。