当前位置:asp编程网>技术教程>Database教程>  正文

mysql授权成功后仍无法远程连接上服务器

2017-07-25 15:12:42   来源:www.aspbc.com   作者:zuiaiphp   浏览量:4995   收藏
首先使用shell登录到linux服务器,使用以下命令连接上linux服务器
[root@localhost ~]# mysql -u服务器账号 -p服务器密码  (注意这里-u和-p后面没有空格)
mysql> grant all PRIVILEGES on 数据库.* to root@'192.168.1.20' identified by '123456' WITH GRANT OPTION; 
mysql> flush privileges; 
mysql> exit;
这样就授权成功,远程mysql账号、密码、远程客户端IP分别是【root】、【123456】和【192.168.1.20】,理论上在192.168.1.20电脑上就可以使用navicat连接上mysql服务器

如果连接不上,可能出现的问题就是linux服务器的防火墙
打开防火墙配置文件
[root@localhost ~]# vi /etc/sysconfig/iptables
在-A FORWARD -j REJECT --reject-with icmp-host-prohibited这行前面加上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT  
然后保存,重启防火墙
[root@localhost ~]#service iptables restart 
如果没有出现问题,这样就可以了,再使用navicat连接一下试试
如果有问题:可以试试关闭防火墙:
[root@localhost ~]#service iptables stop 
然后再使用navicat连接一下,看看能不能连接上。

如果出现下面的问题
Can't get hostname for your addressConnection closed by foreign host  
需要修改数据库配置文件
vim /etc/my.cnf  
在[mysqld]节点下新增或修改如下两行
skip-name-resolve  #忽略主机名的方式访问  
lower_case_table_names=1 #忽略数据库表名大小写  

重启MySQL服务就好了
[root@localhost ~]# service mysql restart;

关于我们-广告合作-联系我们-积分规则-网站地图

Copyright(C)2013-2017版权所属asp编程网