如果MySQL再运行,先杀掉mysqld进程

 killall -TERM mysqld

运行mysqld_safe --skip-grant-tables &

此时如果不想被远程连接,那么执行:

mysqld_safe --skip-grant-tables --skip-networking &

使用mysql连接server

update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';

特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了,而是将加密后的用户密码存储于authentication_string字段

mysql> flush privileges;
mysql> quit;

修改完毕。重启

killall -TERM mysqld。
mysqld_safe &

然后mysql就可以连接了