ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

ERROR 1396 (HY000): Operation ALTER USER failed for "root"@"localhost"

在网上找了很多帖子都是互相抄的,关键是执行后不解决问题,这里分享下我的解法。

 

问题就是 Navicat连接时报错

然后再服务器上设置mysql密码报错

 

 

其实这个问题很简单:

show databases;

show tables;

执行后会发现有个user 表;

select host,user from user;

第一行host是我自己添加的,最下面一行是一开始就有的root账户,可以直接把user表的root账户对应的host改为"%"就可以在Navicat上远程登录了,就是SQL的update语句,不用搞得那么复杂

update user set host = "%" where host = "localhost" and user = "root";

再次查看,发现已经更新成功了

最近需要执行flush privileges;

flush privileges;

 

然后Navicat就连接成功了