CentOS系统MySQL密码设置完整指南
密码配置必要性
安装MySQL后设置强密码对数据库安全防护至关重要。初始安装的MySQL实例root账户通常无密码或仅设临时密码,需要立即重置以防止未授权访问。
安装验证与准备
# 检查MySQL服务状态
systemctl status mysqld
# 获取临时密码(MySQL 5.7+)
grep 'temporary password' /var/log/mysqld.log
方法一:mysql_secure_installation工具
安全配置流程
# 启动交互式安全配置
sudo mysql_secure_installation
# 根据提示完成操作:
1. 输入获取的临时密码(若无则回车)
2. 启用密码强度验证插件
3. 设置新密码(需满足安全策略)
4. 移除匿名用户
5. 禁止root远程登录
6. 删除测试数据库
7. 立即重载权限表
方法二:SQL命令修改密码
MySQL 5.7命令语法
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
MySQL 8.0+语法更新
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
密码策略调整
临时降低强度要求(测试环境)
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.length = 4;
永久修改需编辑/etc/my.cnf
配置文件:
[mysqld]
validate_password.policy=0
validate_password.length=4
密码修改验证步骤
- 重启MySQL服务:
systemctl restart mysqld
- 使用新密码登录:
mysql -u root -p
- 执行测试查询:
SELECT user();
安全增强建议
- 设置12位以上包含大小写字母、数字、特殊字符的密码
- 定期使用
ALTER USER
命令更新密码 - 为应用创建独立账户并限制权限范围
- 启用数据库防火墙(如firewalld)限制访问IP
常见问题解决
问题现象 | 解决方案 |
---|---|
Access denied错误 | 停止服务后启动mysqld_safe --skip-grant-tables |
密码策略冲突 | 执行SHOW VARIABLES LIKE 'validate_password%' 检测策略 |
修改后无法登录 | 检查SELinux状态及错误日志/var/log/mysqld.log |