Home > Database > Mysql Tutorial > body text

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

WBOY
Release: 2016-06-01 13:38:41
Original
846 people have browsed it

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
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template