mysql8,客户端链接数据库失败解决方法。
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';
复制

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

切记还有一步:
- alter user 'root'@'%' identified with mysql_native_password by '123456';
复制
最近需要执行flush privileges;
- flush privileges;
复制
然后Navicat就连接成功了


