MySQL 重置root密码

执行以下操作需要注意几点
1、没有任何服务或者用户在使用mysql
2、最好断网,因为以下操作会使得mysql数据库处于无密码状态,任何可以登录主机的用户都可以随意操作数据库

一、编辑配置文件

编辑配置文件,跳过权限
将以下参数添加到/etc/my.cnf的[mysqld]下

skip-grant-tables

eg:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables

二、重启mysql

systemctl restart mysqld

三、修改root密码

1、无账号连接mysql

mysql

2、连接mysql数据库

use mysql

3、修改root密码

1、5.7以前的版本

update user set password=password('newpassword') where user='root';

2、5.7版本

在5.7版本中不存在password字段,所有要用以下修改进行重置密码

update user set authentication_string=password('newpassword') where user='root';

3、刷新权限

flush privileges;

四、恢复配置文件并重启mysql

将前面添加的参数删除


重启mysql

systemctl restart mysqld

至此mysql的root账户密码重置完毕