MySQL安装后如何设置防火墙和网络访问控制策略

来源:编程学习作者:广州GEO公司头衔:草根站长
导读:本期聚焦于小伙伴创作的《MySQL安装后如何设置防火墙和网络访问控制策略》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《MySQL安装后如何设置防火墙和网络访问控制策略》有用,将其分享出去将是对创作者最好的鼓励。

MySQL安装完成后,仅完成基础的服务部署还不够,网络层面的安全防护是避免数据库被恶意访问的关键。做好防火墙配置和网络访问控制策略,能从源头减少数据库被攻击的风险。

MySQL安装后如何设置防火墙和网络访问控制策略

防火墙基础配置

Windows系统防火墙设置

Windows系统自带防火墙是保护MySQL服务的第一道屏障,默认情况下防火墙会拦截外部对MySQL端口的访问,需要手动添加放行规则。

首先确认MySQL的默认端口,默认是3306,若自定义过端口需对应调整。打开Windows Defender 防火墙,选择高级设置,在入站规则中新建规则,选择端口类型,输入MySQL对应的端口号,允许连接,然后选择适用的网络类型,最后给规则命名即可完成配置。

对应的PowerShell命令也可以快速完成配置,示例如下:

# 放行MySQL默认3306端口的入站规则
New-NetFirewallRule -DisplayName "MySQL_3306" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow

Linux系统防火墙设置

Linux系统常用的防火墙工具包括iptables和ufw,不同发行版默认使用的工具不同,配置方式也有差异。

使用ufw配置(Ubuntu/Debian常用)

ufw是简化版的防火墙工具,操作更便捷,首先确认ufw状态,若未启用可先开启:

# 查看ufw状态
sudo ufw status
# 启用ufw
sudo ufw enable
# 放行MySQL默认3306端口
sudo ufw allow 3306/tcp
# 重载规则使配置生效
sudo ufw reload

使用iptables配置(CentOS/RHEL常用)

iptables是更底层的防火墙工具,配置规则如下:

# 放行3306端口的TCP入站请求
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
# 保存iptables规则,不同系统保存命令有差异
# CentOS 6及以下
sudo service iptables save
# CentOS 7及以上
sudo iptables-save > /etc/sysconfig/iptables

MySQL自身网络访问控制策略

防火墙是网络层的防护,MySQL自身的访问控制能实现更细粒度的权限管理,两者结合能提升安全等级。

限制MySQL绑定地址

默认情况下MySQL可能绑定所有网卡地址,需要修改配置文件限制绑定的IP,避免对外暴露服务。

打开MySQL配置文件,Linux系统一般在/etc/mysql/my.cnf或者/etc/my.cnf,Windows系统在MySQL安装目录的my.ini,找到[mysqld]段,添加或修改bind-address参数:

[mysqld]
# 仅绑定本地回环地址,仅允许本机访问
bind-address = 127.0.0.1
# 若需要允许指定IP段访问,可绑定对应网卡IP,比如内网IP 192.168.0.1
# bind-address = 192.168.0.1

修改完成后重启MySQL服务使配置生效。

精细化用户权限控制

MySQL的用户权限可以限制访问来源IP、可操作的数据库和表,避免使用root用户做日常操作。

创建仅允许指定IP访问的用户示例:

-- 创建用户,仅允许192.168.0.100这个IP访问所有数据库
CREATE USER 'db_user'@'192.168.0.100' IDENTIFIED BY 'strong_password';
-- 授予该用户所有数据库的所有权限,实际场景可按需缩小权限范围
GRANT ALL ON *.* TO 'db_user'@'192.168.0.100';
-- 刷新权限使配置生效
FLUSH PRIVILEGES;

若需要允许某个IP段访问,可使用通配符,比如'db_user'@'192.168.0.%'表示允许192.168.0.0/24网段的所有IP访问。

禁用不必要的网络功能

可以关闭MySQL的一些不必要的网络相关功能,减少攻击面:

  • 禁用skip-networking参数,若仅需要本机访问可开启该参数,让MySQL不监听TCP/IP端口,仅通过本地socket连接
  • 避免使用默认的3306端口,可修改为其他高位端口,减少被扫描的概率
  • 定期清理无用的用户权限,删除来源IP不明确、权限过高的用户

配置验证方法

完成配置后需要验证规则是否生效,避免配置错误导致无法访问或者防护失效。

本地验证MySQL服务是否正常:

# 本地连接MySQL测试
mysql -u db_user -p -h 127.0.0.1

从外部机器测试端口是否可访问:

# 测试目标IP的3306端口是否开放,替换为实际MySQL服务器IP
telnet 192.168.0.1 3306
# 或者使用nc命令测试
nc -zv 192.168.0.1 3306

如果外部测试无法连接,说明防火墙规则生效,若可以连接则需要检查防火墙配置是否正确。

MySQL防火墙网络访问控制iptablesufw修改时间:2026-06-11 07:57:28

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。