MySQL忘记root密码重置(Linux环境)

MySQL root密码忘了进不去数据库?别慌,按下面步骤操作,5分钟就能重置。

1. 先停止MySQL服务

systemctl stop mysqld

CentOS 7 默认是这个命令,如果是 mariadb 就改成 systemctl stop mariadb。

2. 跳过权限验证启动MySQL

mysqld_safe --skip-grant-tables &

这一步会跳过密码验证,直接进入MySQL,不需要输密码。

3. 无密码登录MySQL

mysql -u root

现在直接就能进去了,不需要密码。

4. 重置root密码

USE mysql;

-- MySQL 5.7 及以上版本
UPDATE user SET authentication_string = PASSWORD('你的新密码') WHERE User = 'root';

-- 如果是 MySQL 5.6 及以下版本
UPDATE user SET password = PASSWORD('你的新密码') WHERE User = 'root';

FLUSH PRIVILEGES;

EXIT;

把 你的新密码 换成你想设置的新密码,注意密码强度。

5. 重启MySQL服务

systemctl start mysqld

6. 用新密码登录测试

mysql -u root -p

输入刚才设置的新密码,能登录就成功了。

常见坑

坑1:mysqld_safe 找不到
有些系统用的是 mysqld,试试:

mysqld --skip-grant-tables &

坑2:改完密码登录还是不行
一定要执行 FLUSH PRIVILEGES;,不然不生效。

坑3:密码太简单报错
MySQL 有密码强度要求,新密码最好是字母+数字+符号,8位以上。

坑4:MySQL 8.0 版本
MySQL 8.0 改密码的语法不一样:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-8 07:16