ERROR 1045(28000):Access denied for user 'root'@'localhost(using password:YES)

今天服务器登录mysql好好的,退出后突然就登录不进去了,一直显示如下图:
ERROR 1045(28000):Access denied for user 'root'@'localhost(using password:YES)
一开始我以为是没有设置初始密码,结果不输入密码直接回车也是这样,密码我保证没有忘记,但不管怎么输入都没用,后面想着可能是长时间没用,密码过期了,就基本断定是密码问题了,于是只能重置密码了。步骤如下:
1.找到/etc/my.cnf文件,有可能找不到,像我服务器上安装的mysql是rpm格式安装包安装的,所以没有,这种情况可以在/usr/share/mysql目录下的my-medium.cnf 移动到etc目录下 并且改名为my.cnf。
2.在/etc/my.cnf文件添加 skip-grant-tables 跳过密码认证
ERROR 1045(28000):Access denied for user 'root'@'localhost(using password:YES)
3.重启mysql service mysql restart

4.此时不需要密码访问mysql了,mysql -uroot -p 回车进入
5. use mysql;
6. update mysql.user set password=password(‘admin’) where user=‘root’;

7.修改密码成功后,再将/etc/my.cnf文件中的skip-grant-tables 跳过密码认证 去掉,保存。

8.重新登录mysql,成功。
ERROR 1045(28000):Access denied for user 'root'@'localhost(using password:YES)
以上方法亲测有效,如有疑问可以留言,第一时间回复。