mysql启动命令如何配置防火墙实现正常访问

来源:编程网作者:上海网站建设头衔:草根站长
导读:本期聚焦于小伙伴创作的《mysql启动命令如何配置防火墙实现正常访问》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《mysql启动命令如何配置防火墙实现正常访问》有用,将其分享出去将是对创作者最好的鼓励。

mysql是常用的关系型数据库,启动服务和配置防火墙是实现数据库正常访问的两个核心步骤,两者配合不当会导致服务启动后无法被客户端连接。不同操作系统的mysql启动命令和防火墙配置方式存在差异,需要根据实际环境选择对应的操作方法。

mysql启动命令如何配置防火墙实现正常访问

mysql常用启动命令

Linux系统启动命令

Linux系统中mysql的服务管理通常基于systemctl或者service命令,不同发行版可能略有区别,以下是通用操作方式:

  • 查看mysql服务状态:systemctl status mysqld 或者 service mysql status
  • 启动mysql服务:systemctl start mysqld 或者 service mysql start
  • 停止mysql服务:systemctl stop mysqld 或者 service mysql stop
  • 设置开机自启:systemctl enable mysqld 或者 service mysql enable

如果是源码安装的mysql,可能需要进入安装目录的bin文件夹执行启动命令,示例如下:

# 进入mysql安装目录的bin文件夹
cd /usr/local/mysql/bin
# 启动mysql服务,指定配置文件路径
./mysqld_safe --defaults-file=/etc/my.cnf &

Windows系统启动命令

Windows系统中可以通过服务管理器或者命令行启动mysql,命令行操作需要在管理员权限下执行:

  • 查看mysql服务状态:sc query mysql
  • 启动mysql服务:net start mysql
  • 停止mysql服务:net stop mysql

如果mysql服务名不是默认的mysql,需要替换为实际的服务名称,比如安装时自定义的服务名为mysql80,则启动命令为net start mysql80

防火墙配置方法

Linux系统防火墙配置

Linux系统常用的防火墙有firewalld和iptables两种,需要根据系统实际使用的防火墙类型选择配置方式。首先可以通过firewall-cmd --state命令查看是否使用firewalld,如果返回running则表示使用firewalld,否则大概率使用iptables。

firewalld防火墙配置

mysql默认端口为3306,开放该端口的命令如下:

# 开放3306端口,永久生效
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新加载防火墙规则,让配置生效
firewall-cmd --reload
# 查看已开放的端口,确认3306已经添加
firewall-cmd --zone=public --list-ports

如果需要限制只允许特定IP访问mysql端口,可以添加富规则,示例如下:

# 只允许192.168.1.100访问3306端口
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept' --permanent
# 重新加载规则
firewall-cmd --reload

iptables防火墙配置

使用iptables的系统中,开放3306端口的命令如下:

# 添加规则,允许tcp协议的3306端口入站
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
# 保存规则,避免重启后失效,不同系统保存命令可能不同
# CentOS系统
service iptables save
# Ubuntu系统
iptables-save > /etc/iptables/rules.v4

Windows系统防火墙配置

Windows系统可以通过图形界面或者命令行配置防火墙,命令行操作需要在管理员权限的PowerShell中执行:

# 开放3306端口入站规则
New-NetFirewallRule -DisplayName "MySQL 3306" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow
# 查看已创建的防火墙规则,确认规则存在
Get-NetFirewallRule -DisplayName "MySQL 3306"

如果需要限制访问来源,可以在创建规则时添加-RemoteAddress参数,比如只允许192.168.1.0/24网段访问:

New-NetFirewallRule -DisplayName "MySQL 3306" -Direction Inbound -Protocol TCP -LocalPort 3306 -RemoteAddress 192.168.1.0/24 -Action Allow

配置验证与常见问题

完成mysql启动和防火墙配置后,可以通过以下方式验证是否配置成功:

  • 本地验证:在数据库所在服务器执行mysql -u root -p,输入密码后能正常进入mysql命令行则表示服务启动正常。
  • 远程验证:在另一台客户端机器执行mysql -h 服务器IP -u 远程用户 -p,如果能正常连接则表示防火墙配置生效。

常见的问题及解决方法:

  • 服务启动后本地可以访问但远程无法访问:检查防火墙是否开放3306端口,同时检查mysql的用户权限是否允许远程连接,需要给用户授予对应IP的访问权限。
  • 防火墙配置后不生效:检查防火墙是否重启加载规则,firewalld配置后需要执行firewall-cmd --reload,iptables配置后需要保存规则。
  • 端口不是默认的3306:如果mysql配置了自定义端口,需要开放对应的自定义端口,同时客户端连接时需要指定端口号。

如果需要查看mysql当前使用的端口,可以进入mysql命令行执行以下语句:

-- 查看mysql监听的端口
SHOW VARIABLES LIKE 'port';

配置完成后建议测试不同场景下的访问情况,确保本地和授权的远程客户端都可以正常连接mysql服务,同时不会对非授权访问开放端口,保障数据库的安全性。

mysqlfirewall启动命令端口配置修改时间:2026-06-17 13:00:36

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