记得密码时用 ALTER USER 命令修改,忘记密码则需停止服务后以 –skip-grant-tables 模式启动重置;注意密码策略、权限及主机名匹配问题。

修改mysql 8.0 的密码主要有两种情况:记得当前密码时正常修改,以及忘记密码时进行重置。操作需谨慎,确保输入正确命令。
记得密码:使用 ALTER USER 命令
这是官方推荐的标准方法,适用于知道当前密码的用户。
- 登录 MySQL:打开命令行,使用以下命令并输入当前密码。mysql -u root -p
- 执行修改命令 :在 MySQL 提示符下,运行 ALTER USER 语句。请将
'root'@'localhost'替换为你的用户名和主机名,新密码要符合复杂度要求(大小写字母、数字、特殊字符)。ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass123!’; - 刷新权限:虽然 MySQL 8.0 通常会自动生效,但执行以下命令可以确保更改立即应用。FLUSH PRIVILEGES;
忘记密码:重置 root 密码
当忘记 root 密码无法登录时,需要通过跳过 权限验证 的方式来重置。
- 停止 MySQL 服务:
- 启动免密模式:
- 无密码登录并修改:另开一个命令行窗口,直接登录 MySQL。mysql -u root 登录后依次执行:FLUSH PRIVILEGES;ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘ 你的新强密码 ’;FLUSH PRIVILEGES;
- 重启服务:关闭之前运行免密模式的窗口,然后正常启动 MySQL 服务。
- Windows:运行 net start mysql。
- Linux:运行 sudo systemctl start mysqld。
常见问题 与注意事项
操作过程中可能会遇到一些特定问题,提前了解可避免麻烦。
- 密码策略 :MySQL 8.0 默认启用强密码策略。如果想设置简单密码用于测试,可在 配置文件
my.cnf或my.ini的 [mysqld] 部分添加validate_password.policy=LOW,然后重启服务再修改密码。 - SYSTEM_USER 权限:在某些版本(如 8.0.16+)中,修改其他用户的密码可能需要 SYSTEM_USER 权限。如果遇到
Error 1227,可以先为自己授予该权限:GRANT SYSTEM_USER ON *.* TO ‘root’@’localhost’;,然后刷新权限。 - 主机名匹配 :`’root’@’localhost’` 和 `’root’@’%’` 被视为不同账户。务必确认你修改的是正确的用户主机组合,可用select user, host FROM mysql.user; 查询。
基本上就这些。