解决 Navicat for Mysql连接mysql出现10038问题

连接设备是腾讯云的Linux服务器,自己安装的PHP5.6,Apache2.4,mysql5.6

     连接工具是Navicat for Mysql11.1.13


对Navicat的新建数据库进行配置后,在点连接测试的时候总是提示10038错误,一直进不去数据库,自己在服务器中上传一个PHP连接数据库的文件,测试,服务器内部可以正常访问mysql,用了win的cmd  dos窗口测试,不能用外网访问mysql,也就是服务器内网能正常访问,外网就不行了


网上找到的解决办法是:

设置mysql服务允许外网访问,修改mysql的配置文件,有的是my.ini,有的是my.cnf【linux】.

1:设置mysql的配置文件
     /etc/mysql/my.cnf
     找到 bind-address  =127.0.0.1  将其注释掉;//作用是使得不再只允许本地访问;

也可以改成bind-address  =0.0.0.0
 
  重启mysql:/etc/init.d/mysql restart;
 

2:在Linux端登录mysql数据库:mysql -u root -p
  mysql> use mysql;
 
  查询host值:
mysql> select user,host from user;
 
如果没有"%"这个host值,就执行下面这两句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;


这是修改后的情况

修改后测试了一下还是提示一样的错误,后来发现其实是服务器的防火墙没有关掉,在将防火墙关闭之后,就能正常连接了


附上防火墙的开启/关闭方法

LINUX防火墙的打开与关闭方法

1) 重启后生效

  开启: chkconfig iptables on

  关闭: chkconfig iptables off



2) 即时生效,重启后失效

  开启: service iptables start

  关闭: service iptables stop

  需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。

  在开启了防火墙时,做如下设置,开启相关端口,

  修改/etc/sysconfig/iptables 文件,添加以下内容:

  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 


你可能感兴趣的:(解决 Navicat for Mysql连接mysql出现10038问题)