答案:防止mysql弱口令需设置强密码策略、修改默认账户、限制远程登录并定期审计。启用validate_password插件,配置MEDIUM及以上策略,强制密码长度与复杂度;安装后立即修改root密码,删除匿名用户;禁止root远程登录,创建受限专用账号;定期检查用户权限,强制周期性改密,遵循最小权限原则,持续维护数据库安全。

防止MySQL弱口令是保障数据库安全的重要一步。使用简单、易猜测的密码会极大增加被攻击的风险,如暴力破解、未授权访问等。以下是一些实用的防护方法,帮助提升MySQL账户的安全性。
1. 设置强密码策略
MySQL支持通过插件实现密码强度验证。启用validate_password插件可强制用户设置符合复杂度要求的密码。
- 安装插件:执行 INSTALL PLUGIN validate_password SONAME ‘validate_password.so’;
- 配置策略级别:可通过参数 validate_password_policy 设置为 LOW、MEDIUM 或 STRONG
- 要求包含数字、大小写字母、特殊字符,且长度不少于8位
例如,在配置文件 my.cnf 中添加:
[mysqld] validate_password.policy = MEDIUM validate_password.length = 8
2. 修改默认账户和密码
新安装的MySQL通常存在默认账户(如root@localhost),且可能未设置密码或使用弱密码。
- 首次安装后立即修改root密码:ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘StrongPass123!’;
- 避免使用常见密码,如123456、password、root等
- 删除不必要的默认账户或匿名用户
3. 限制远程登录与账户权限
减少暴露面可有效降低被暴力破解的风险。
- 禁止root账户从远程登录,仅允许本地访问
- 为远程访问创建专用账号,并限制其IP来源,如:CREATE USER ‘admin’@’192.168.1.100’ IDENTIFIED BY ‘ComplexPass!2024’;
- 遵循最小权限原则,不随意授予FILE、SUPER等高危权限
4. 定期审计与更新密码
长期不更换密码会增加泄露风险。
- 定期检查用户列表:select User, Host FROM mysql.user;
- 强制周期性修改密码,可通过设置 password_expired 标志实现
- 使用命令 ALTER USER ‘user’@’host’ PASSWORD EXPIRE; 让密码立即过期
基本上就这些。只要合理配置密码策略、管理账户权限并定期维护,就能有效防止MySQL弱口令带来的安全问题。安全不是一次性的任务,而是需要持续关注的过程。