1.先停止mysql服务:
systemctl status mysqld
#
systemctl stop mysqld
2.以安全模式启动MySQL:
- 在MySQL 5.7及以后版本,可以通过添加 --skip-grant-tables 选项来启动MySQL,这将允许root用户无需密码即可登录。
- 在MySQL 5.6及以前版本,可以通过启动时添加 --bootstrap 选项来初始化数据库,然后退出并重新启动MySQL服务。
#启动mysql
mysqld --skip-grant-tables --user=mysql &
## 若此过程出现问题,则查看配置文件,大概率是配置文件出问题,建议恢复到初始文件
#在安全模式下,可以直接登录MySQL,无需密码
mysql -uroot
3.重置密码:
#登录后,可以为root用户或任何其他用户重置密码。使用以下命令:
alter user 'root'@'localhost' identified by '新密码';
#MySQL 5.6及以前版本使用:
update mysql.user set password=password('新密码')
where User='root' and Host='localhost';
#上面无法使用就用这个:
update mysql.user set authentication_string=password('新密码')
where user='root' and host='localhost';
4.刷新权限:
flush privileges;
#退出MySQL命令行界面,
#编辑配置文件将skip-grant-tables参数注释
#然后重新启动MySQL服务,或者 pkill -9 mysqld