mysql修改密码
一、推荐方法:ALTER USER
语句(适用 MySQL 5.7+)
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
操作步骤:
- 登录 MySQL:
mysql -u root -p
(输入当前密码)7
- 执行
ALTER USER
语句,例如:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
- 刷新权限:
FLUSH PRIVILEGES;
(部分版本可省略,但建议执行)6
注意事项:
- MySQL 8.0+ 默认使用
caching_sha2_password
插件,需确认兼容性8
- 若需指定加密方式,可添加
WITH mysql_native_password
参数8
二、传统方法:SET PASSWORD
语句(适用旧版 MySQL)
SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password');
限制:
PASSWORD()
函数在 MySQL 5.7+ 已弃用,8.0+ 移除16
- 仅建议用于旧版本维护场景6
三、命令行工具:mysqladmin
mysqladmin -u root -p password 'new_password'
步骤:
- 输入当前密码验证
- 自动完成密码更新,无需登录 MySQL 命令行3
四、直接修改 mysql.user
表(需谨慎操作)
UPDATE mysql.user
SET authentication_string = PASSWORD('new_password')
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
注意事项:
- MySQL 8.0+ 需使用
authentication_string
字段并生成 SHA2 哈希值68
- 修改后需重启服务或执行
FLUSH PRIVILEGES
46
五、忘记密码时的重置方法(需停机操作)
- 停止 MySQL 服务
- 启动 MySQL 时跳过权限验证:
mysqld --skip-grant-tables
- 无密码登录后使用
ALTER USER
或直接修改 mysql.user
表46
- 重启服务并验证新密码
六、版本兼容性总结
方法 |
MySQL 5.7- |
MySQL 8.0+ |
ALTER USER |
✓(推荐)27 |
✓(强制推荐)78 |
SET PASSWORD |
✓(部分弃用)1 |
✗ |
直接修改 user 表 |
✓(需加密)46 |
✓(需 SHA2 哈希)8 |
最佳实践:生产环境优先使用 ALTER USER
,避免直接操作系统表;遗忘密码场景需结合 --skip-grant-tables
紧急处理47。
版权声明:
作者:SE_Yang
链接:https://www.cnesa.cn/4919.html
文章版权归作者所有,未经允许请勿转载。
THE END