#先把mysql停止
service mysqld stop
#安全模式进入mysql,并且跳过授权表
mysqld_safe --skip-grant-tables &
#如果上面这个命令报错的话试试这个
mysqld --user=mysql --skip-grant-tables --skip-networking &
#输入 mysql -uroot -p 不要敲密码,回车进入即可
mysql -uroot -p
#用一下mysql这个库就好,然后执行一下update语句(括号里面的是你要修改的新密码),然后刷新一下授权表,最后退出即可
mysql> use mysql
mysql> update mysql.user set authentication_string=password('root') where user='root';
mysql> flush privileges;
mysql> quit
#测试 将mysql重启
service mysqld restart
mysql -proot
#重置密码之后出现的问题 navicat远程连接不上去
#因为之前执行了 mysqld --user=mysql --skip-grant-tables --skip-networking &
#该命令中有一个参数“–skip-networking”,
#所以使用命令:SHOW VARIABLES LIKE 'skip_networking'; 查看,发现参数skip-networking是打开的。

#所以现在所要做的就是将参数skip-networking关闭掉。
#查询到相应的pid之后将对应进行kill掉
ps aux|grep mysql
#一般来说 kill完之后就可以链接上去了。
结论:如果使用 “mysqld_safe --user=mysql --skip-grant-tables --skip-networking &” 命令重启mysql服务,实现了免密登录,完成所需操作之后,一定要记得关闭参数skip-grant-tables 和skip-networking。