文章最后更新时间:2025年06月11日
MySQL忘记root密码解决方案
1、修改配置文件跳过密码验证
编辑my.cnf
配置文件,添加skip-grant-tables
参数:
2、重启MySQL服务
[root@localhost ~]# systemctl restart mysqld # 或使用 service mysqld restart
重启后可直接登录,无需密码:
3、修改root密码
错误示例:
mysql> alter user 'root'@'localhost' identified by '123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
正确步骤:
mysql> flush privileges; # 刷新权限表
Query OK, 0 rows affected (0.00 sec)
mysql> alter user 'root'@'localhost' identified by '888888'; # 设置新密码
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; # 再次刷新确保生效
Query OK, 0 rows affected (0.00 sec)
4、恢复配置文件
移除或注释掉skip-grant-tables
参数:
5、重启服务并验证
[root@localhost ~]# systemctl restart mysqld
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
使用新密码登录:
拓展:已知密码时修改密码
使用mysqladmin
工具(适用于MySQL 5.7及以下版本):
mysqladmin -u'用户名' -p'旧密码' password '新密码'
示例:
mysqladmin -uroot -p123456 password '888888'
MySQL 8.0+ 建议使用:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。