1、修改my.cnf 配置文件
sudo vim /etc/my.cnf
在[mysqld]下添加 skip-grant-tables
2、启动mysql,使用命令 systemclt start mysqld
3、登陆 mysql -uroot 回车
4、按照以下顺序执行语句
(1)update mysql.user set authentication_string=password('newpasswd') where user='root';
(5.7版本下的mysql数据库已经不存在password这个字段了,password字段改成了authentication_string)
flush privileges;
(2)update mysql.user set host='%' where user='root';
(若出现ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'可以执行use mysql; select host from user where user = 'root';查看host是否有%这个值,存在就跳过)
flush privileges;
(3)grant all privileges on *.* to 'root'@'%' identified by 'newpasswd' with grant option;
flush privileges;
5、修改 my.cnf 注释掉 skip-grant-tables
6、重启服务:systemclt restart mysqld
7、用其他机器连接数据库试试!(记得关闭防火墙)