参考网站:
https://www.linuxidc.com/Linux/2018-05/152586.htm
https://www.cnblogs.com/wangbaobao/p/7087032.html
博主使用mysql版本:5.7.22
1、修改my.cnf配置文件
vim /etc/my.cnf
在[mysqld]下添加skip-grant-tables,然后保存并退出;
2、重启mysql
service mysqld restart
3、更改root用户密码
执行mysql命令,进入mysql命令行
mysql
mysql> use mysql; #使用mysql
mysql> select User from user; #此处为查询用户命令
mysql> update user set password=password("123456") where user="root";
#修改密码报错,5.5.*版本的mysql可以使用此方法修改密码,5.7版本下的mysql则会报以下错误提示,
#原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
mysql> update mysql.user set authentication_string=password('123456') where user='root'; #修改密码成功
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges; #立即生效
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
#先将/etc/my.cnf配置文件中的skip-grant-tables注释掉,保存退出
#检验修改密码是否
mysql -u root -p #以该用户登录成功.
Enter password: 123456
…………………………
mysql>