网上找了一堆方法都不行,经过折腾一番,发现MySQL不同版本重置密码也存在一定的差异!记录下Mysql5.7.18版本的重置密码方法。
1.找到/etc/mysql/my.cnf 修改此文件添加一行skip-grant-tables(我的在/etc/mysql/mysql.conf.d# vi mysqld.cnf),修改如下图
2.重启mysql
cd /etc/init.d
sudo service mysql stop
sudo service mysql start
如果重启失败,直接reboot重启服务器。
3.重启完成后,连接mysql。使用命令为mysql -u root -p 执行后,在需要输入密码处,直接按回车,即可进入mysql。
4.执行命令use mysql,使用mysql自身的数据库,且执行desc user;查看user表结构。
5.执行update mysql.user set authentication_string=password('新的密码') where user='root';修改密码,(update mysql.user set authentication_string=password('新的密码') where user='root' and Host = '127.0.0.1';不行)网上很多方法说执行update user set Password = password('新的密码') where User = 'root';的,我的不管用!mysql5.7数据库下已经没有password这个字段了,password字段改成了authentication_string!!!
6.执行语句flush privileges;然后退出mysql连接。
7.更改/etc/mysql/my.cnf文件(我的在/etc/mysql/mysql.conf.d# vi mysqld.cnf),将最初添加的一行skip-grant-tables 删除,保存文件,然后重启mysql,即可将mysql数据库的root密码更改完毕,以后使用新密码登录即可。