CentOS 7 开启3306端口详解

MySQL数据库是世界上最流行的开源关系型数据库之一,其官方端口为3306,在CentOS 7系统中,默认情况下,MySQL服务并未开启3306端口,为了使MySQL服务能够被远程访问,我们需要手动开启3306端口,本文将详细介绍如何在CentOS 7系统中开启3306端口。
准备工作
在开启3306端口之前,请确保以下准备工作已完成:
- 已安装MySQL数据库。
- 已安装firewalld服务。
开启3306端口
查看当前防火墙状态
我们需要查看当前CentOS 7系统的防火墙状态,以确定是否需要开启3306端口。
sudo systemctl status firewalld
开启3306端口
我们将使用firewalld服务开启3306端口。
sudo firewall-cmd --permanent --add-port=3306/tcp
重载防火墙规则
开启端口后,我们需要重载防火墙规则,以确保更改生效。

sudo firewall-cmd --reload
检查3306端口是否开启
我们可以使用以下命令检查3306端口是否已开启。
sudo netstat -tulnp | grep 3306
如果输出结果中包含3306端口,则表示端口已开启。
使用SELinux策略开启3306端口
在某些情况下,即使开启了3306端口,MySQL服务仍然无法被远程访问,这时,我们需要使用SELinux策略来允许MySQL服务访问3306端口。
查看SELinux状态
getenforce
修改SELinux策略
如果SELinux处于开启状态,我们需要修改SELinux策略,以下命令将允许MySQL服务访问3306端口。
setsebool -P mysql_connect_any=1
重启MySQL服务
修改策略后,我们需要重启MySQL服务,以确保更改生效。

sudo systemctl restart mysqld
FAQs
问题:开启3306端口后,为什么MySQL服务仍然无法被远程访问?
解答:这可能是因为SELinux策略限制了MySQL服务的访问权限,您可以通过执行
setsebool -P mysql_connect_any=1命令来允许MySQL服务访问3306端口。问题:如何关闭3306端口?
解答:关闭3306端口的方法与开启端口类似,使用以下命令删除3306端口的规则。
sudo firewall-cmd --permanent --remove-port=3306/tcp
重载防火墙规则。
sudo firewall-cmd --reload
这样,3306端口就被关闭了。

