Navicat连接mysql 2003 - Can't conn

2019-07-18  本文已影响0人  一位先生_

linux下mysql开启远程访问权限及防火墙开放3306端口

默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限

主流的有两种方法,改表法和授权法。

解决这类问题方法如下,报10038是服务器防火墙没有开启3306端口

1.打开防火墙配置文件

#vim /etc/sysconfig/iptables

添加这样一行(其实你直接把上面80端口那行复制粘贴端口改成3306就可以了,这样能保证不会错):

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

注意:如果文件中已有该代码则不需要二次添加

2.然后重启防火墙

#service iptables restart

这主要是解决Navicat连接mysql出现2003-10038,链接不上的问题

如果还是不好你就要更改mysq里面的权限了

步骤如下:

1、登陆mysql

#mysql -u root -p

2、修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.1.123,这表示只允许局域网的192.168.1.123这个ip远程访问mysql。

更改数据库用户权限grant all privileges on portal.* to root@zq27 identified by 'root';

mysql> use mysql; 

mysql> grant all privileges on portal.* to root@zq27 identified by 'root';

mysql> update user set host = '%' where user = 'root'; 

mysql> select host, user from user; 

mysql> flush privileges;

然后就大功告成,可以解决远程无法连接,以及无法访问本地数据库的问题啦!

如果以上操作都有操作 还是连不上 那你需要去阿里云服务器(自己的服务器)上 看下 服务器的安全配置规则 是否有3306 规则,没有的话 给加上就可以了。

上一篇下一篇

猜你喜欢

热点阅读