记得密码时用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;查询。
基本上就这些。