在CentOS系统中,您可以使用firewall-cmd命令来设置防火墙规则,以允许MySQL服务通过防火墙。以下是具体步骤:
首先,确保防火墙正在运行:
sudo systemctl status firewalld
如果防火墙未运行,可以启动它:
sudo systemctl start firewalld
使用firewall-cmd命令添加一个端口规则,允许MySQL服务通过防火墙:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
--permanent:使规则永久生效。--zone=public:指定防火墙区域为公共区域。--add-port=3306/tcp:添加TCP端口3306。应用新的防火墙规则:
sudo firewall-cmd --reload
检查防火墙规则是否已成功添加:
sudo firewall-cmd --list-all
在输出中查找ports部分,确认3306端口已列出。
如果您只想允许特定IP地址访问MySQL,可以使用以下命令:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'
source address="192.168.1.100":指定允许访问的IP地址。然后重新加载防火墙配置:
sudo firewall-cmd --reload
确保MySQL配置文件/etc/my.cnf或/etc/mysql/my.cnf中的bind-address设置正确,允许来自所需IP地址的连接。例如:
bind-address = 0.0.0.0
这表示MySQL将接受所有IP地址的连接。如果您只想允许本地连接,可以设置为127.0.0.1。
最后,重启MySQL服务以应用配置更改:
sudo systemctl restart mysqld
通过以上步骤,您应该能够成功设置CentOS系统中的防火墙规则,允许MySQL服务通过防火墙。