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 协助处理