我最近遇到了非常麻烦的问题。 用Navicat远程连接数据库也无法连接,真是让人头疼。
在网上查了一下理由,原来远程权限没有开通。 好啊。 那么,让我们回想一下自己是如何处理这个问题的。
如您所知,要在Navicat中连接到数据库,通常需要进行以下连接:
问题整理以及解决办法
错误一:
错误原因:
本地IP(XXX.XXX.XXX.XXX )没有对远程数据库的访问权限。 然后,打开本地IP(XXX.XXX.XXX )对远程mysql数据库的访问权限。
解决办法:
1 .首先远程连接进入服务器,在cmd中输入mysql -u root -p,然后返回,输入密码,然后返回进入mysql命令行。
输入使用MySQL;
输入select user、password、host from user;
可以看到主机上只有localhost主机。 我们还需要在这里添加xxx.xxx.xxx.xxx。
4 .添加方法如下。
输入
grantallprivilegeson *.* to root @ " XXX.XXX.XXX " identified by "密码"
或grantallprivilegeson *.* to‘root’@’XXX.XXX.XXX’identified by‘123456’withgrantoption;
这相当于您授予了IP-xxx.xxx.xxx.xxx的所有权限,包括远程访问权限。
然后输入
flush权限;
这相当于重新加载mysql权限,这一步骤是必需的。
5 .再次输入select user、password、host from user;
可以看到主机中已经添加了新的IP。
6 .现在可以再次使用Navicat for MySQl访问远程mysql数据库并成功打开。
问题解决了。
7 .如果仍然无法连接,说明MySQL Server是否绑定了本地地址并打开了/etc/mysql/my.cnf?
找到了: bind-address=127.0.0.1
解除IP地址的绑定,更改为bind-address=0.0.0.0
然后重新启动MySQL server:/etc/init.d/MySQL restart
错误二:
error2003(hy000 ) 3360 can’tconnecttomysqlserveron’hostxxxxx
’(10061 ) )。
错误原因:
mysqld数据库服务未启动。
解决办法:
检查:在windows任务管理器或unix/linux上查看ps -aux | grep mysql。 确认服务已启动。
处理:启动mysqld服务
错误三:
防火墙打开了
解决方法:
防火墙必须允许3306端口连接。