从MySQL 8.0开始,
mysqld_safe
脚本已被移除,你要是搜索mysql 8.0忘记root密码怎么办,搜到的肯定都是用mysqld_safe
启动。折腾半天一点用也没有,今天我给大家整理一份mysql 8.0及以上,忘记密码后重置的方法。
一、关闭mysql服务
systemctl stop mysqld
二、进入无权限认证模式
1、启动skip-grant-tables模式
mysqld --user=mysql --skip-grant-tables &
执行成功后会返回一个进程ID(例:我这里的是43106),保存下来,到时候关闭mysql要用到。这时我们就可以无密进入mysql了。
2、进入mysql
mysql -u root
3、刷新权限
FLUSH PRIVILEGES;
4、重置密码
ALTER USER 'root'@'%' IDENTIFIED BY '您的密码';
这里值得注意的地方就是 'root'@'%'的【%】符号,这个是从用户表查出来,要替换成您的。
1、具体查询host
use mysql;
select user,host from user;
5、结束skip-grant-tables模式
找到启动skip-grant-tables时候的进程id,直接kill掉!!!
我这里刚才启动的进程id是43106,那么就执行下列命令
kill -9 43106
6、启动mysql
systemctl start mysqld
到这里您的mysql root密码就已经重置成功了。