Navicat mysql 客户端连接报错
这个问题是因为用户在数据库服务器中的mysql数据库中的user的表中没有权限。
解决步骤
1、连接服务器: mysql -u root -p
2、看当前所有数据库:
show databases;
3、进入mysql数据库:
use mysql;
4、查看mysql数据库中所有的表:
show tables;
5、查看user表中的数据:
select Host, User from user;
上面localhost表示只允许本地连接,不能远程连接
6、修改user表中的Host
%表示开启远程连接,且没有限制,在任何主机都可以登录;(%不包含localhost)
update user set Host='%' where User='root' and Host="localhost";
如果出现下面所说的问题,最好是新增一行Host为%的数据。
上面这样改了后,听说这个设置会导致xshell连接看不到所有的数据库(xshell表示本地连接,因为xshell先连接到服务器,然后在服务器登录数据库),localhost才表示本地连接(注意:上面localhost没有设置密码,所以本地连接,就不用密码;navicat表示远程连接,需要密码)。
龙哥发现并没有问题,于是本着多一事不如少一事就不管了
7、最后刷新一下:flush privileges;
8、重新在Navicate中测试一下:
完美解决,后面回去查看数据库,并没有少,所以就不管了。
至此,问题解决。
其实还有另外更简单的,全部在面板里面解决就可以了。登录phpMyadmin 找到user表 把第一行的localhost 改为% ,重启一下服务器也可以完成。
ok,今天就到这里,喜欢龙哥的三连一下,分享更多干货技巧!