欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

linux中mysql数据库外部无法访问解决_MySQL

程序员文章站 2022-05-23 08:26:30
...
bitsCN.com

linux中mysql数据库外部无法访问解决

今天在虚拟机CentOS系统中安装了mysql数据库,可是安装成功后外部却无法访问。找了好长时间才找到是由于防火墙设置造成的,现将解决过程写出来分享一下。首先,检查了mysql的权限,已经设置过了。且服务也已经启动,在localhost能够成功登陆。iptables防火墙也开启了5506端口(我安装mysql的端口喜欢采用5506,而非默认的3306)。

然后,我在本地环境链接我虚拟机里面的数据库时怎么也链接不上,提示2003的错误码信息。这个是由于网络连接不上造成的。使用SQLyog采用ssh的方式能够连接上数据库,这又说明网络是通的。然后检查用户的权限已经设置过“%”的登陆权限了。最后,我到虚拟机里面查看防火墙的状态,如下:

Chain RH-Firewall-1-INPUT (2 references) num target prot opt source destination

1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0

4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0

5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 11 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 12 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5506

我就纳闷了,怎么防火墙是接受5506端口的,可就是连接不上数据库呢。。。就在这时想到了ssh是可以连接上的。所以防火墙22的端口肯定是通的。那为什么5506的端口就不行了。 突然发现了我设置的防火墙在

10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

后面,我猜想估计就是这个原因,马上把开启的端口设置放到了reject的上面,重启防火墙。搞定了!

总结:设置防火墙的时候千万要注意,不要将accept的设置放到了reject的后面,这样就可以避免防火墙设置无效的情况发生。

友情提示:不要忘记重启防火墙,呵呵!

bitsCN.com