首次安装后设置root密码
-
获取临时密码(适用于MySQL 5.7+)
安装后首次启动时,MySQL会生成临时密码,查看方式:sudo grep 'temporary password' /var/log/mysqld.log # Linux系统
或检查Windows错误日志(默认位于
C:\ProgramData\MySQL\MySQL Server X.X\Data
)。 -
登录并修改密码
mysql -u root -p # 输入临时密码登录
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword1!'; FLUSH PRIVILEGES;
修改已知用户的密码
方法1:ALTER USER(推荐)
-- 修改当前用户密码 ALTER USER USER() IDENTIFIED BY 'NewPassword123!'; -- 修改指定用户密码(示例:用户admin@localhost) ALTER USER 'admin'@'localhost' IDENTIFIED BY 'SecurePass!2025';
方法2:SET PASSWORD
SET PASSWORD FOR 'user'@'host' = 'NewPassword456!';
忘记root密码的重置步骤
-
停止MySQL服务
sudo systemctl stop mysqld # Linux # 或 Windows服务管理器停止服务
-
启动无权限验证模式
sudo mysqld_safe --skip-grant-tables --skip-networking &
-
无密码登录MySQL
mysql -u root
-
重置密码
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'ResetPassword789!'; EXIT;
-
重启MySQL服务
sudo systemctl restart mysqld
安全强化建议
-
密码复杂度要求
- 默认启用密码策略,需包含大小写字母、数字、特殊字符(如)。
- 查看策略:
SHOW VARIABLES LIKE 'validate_password%';
-
避免使用弱密码
若需降低策略(仅测试环境):SET GLOBAL validate_password.policy = LOW; # 可选:LOW/MEDIUM/STRONG
-
定期更新密码
ALTER USER 'user'@'host' IDENTIFIED BY 'NewPeriodicPass!2025';
常见问题解决
- 错误1819:密码不符合策略 → 提高密码复杂度或调整策略。
- 权限拒绝:确保执行用户有
UPDATE
权限或CREATE USER
权限。 - 插件兼容问题(MySQL 8.0+):
若旧客户端不支持caching_sha2_password
,改用传统插件:ALTER USER 'user'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
关键注意事项
- 生产环境必须使用强密码,避免简单字符串。
- 操作后务必执行
FLUSH PRIVILEGES;
刷新权限(部分命令自动触发)。 - Windows系统路径可能不同,需检查
my.ini
配置文件位置。
引用说明:本文操作基于MySQL 8.0官方文档(MySQL 8.0 Reference Manual)及安全实践指南,适用于CentOS/Ubuntu/Windows等主流环境,实际执行时请替换示例密码为符合策略的强密码。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9279.html