查看详情

MYSQL中root能登录127.0.0.1却登录不了localhost的原因及解决办法

平时开发过程中经常是使用root@127.0.0.1这种IP的方式来连接本地MYSQL数据库的,有一次修改了一下密码,然后发现使用root@localhost的方式居然无法登录,非常确认的是密码没有输错。

一开始怀疑是数据库中只有127.0.0.1的记录,没有localhost的记录,但是,实际上不是这样的。


mysql> select host,user,authentication_string from user;

+-----------+------------+-------------------------------------------+

| host      | user       | authentication_string                     |

+-----------+------------+-------------------------------------------+

| localhost | root       | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| localhost | mysql.sys  | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| 127.0.0.1 | root       | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

+-----------+------------+-------------------------------------------+

3 rows in set (0.00 sec)


很明显,用户root存在两条记录,host分别是localhost和127.0.0.1,密码也是一致的,那就排除了密码输错的原因了。经过不断的探索,最后终于解决了问题。

运行以下语句:

grant all privileges on *.* to root@'localhost' identified by '相应的密码' with grant option;

最后再执行一下语句

flush privileges;


问题解决了。


原创内容,转载请注明出处:网站建设,APP开发,小程序开发请找江西居道科技有限公司,http://www.juguw.net

智能建站系统代理招商
所属分类:文章中心      Time:2020-09-09 06:44:31      人气:3008
关闭
13517086454