mysql使用root登录提示:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

使用mysql登录提示:
[root@localhost etc]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

根据网上要求
1.修改/etc/my.cnf,添加skip-grant-tables
2.重启mysql服务,service mysql restart
3.切换数据库,use mysql;
4.修改root用户密码
update user set password=password(“123456”) where user=“root”;
flush privileges;
5.再次修改/etc/my.cnf,将skip-grant-tables删除后重启mysql服务

根据以上内容修改密码后,仍提示无法登录。但在登录命令中添加“-h”参数可正常登录:
mysql -uroot -p -h 127.0.0.1

登录后,查询mysql.user表
mysql> select host from user where user=‘root’;
±----------------------+
| host |
±----------------------+
| % |
| 127.0.0.1 |
| ::1 |
| localhost.localdomain |

通过报错内容(Access denied for user ‘root’@‘localhost’)及user表中的host字段可知,在使用mysql -uroot -p命令时,默认使用了**-h**参数,并且-h后使用的是"localhost"。

此处将user表中的host字段从localhost.localdomain修改为localhost即可。
update user set host=“localhost” where user=“root” and host="localhost.localdomain ";
flush privileges;

修改完成后,再使用mysql -uroot -p即可正常登录

你可能感兴趣的:(mysql)