导读:本期聚焦于小伙伴创作的《宝塔面板怎么配置数据库远程连接?安全组放行与权限授权实操》,敬请观看详情。数据库远程连不上,多半不是密码错,而是面板里端口没开、服务器安全组没放行,或者数据库用户被限制了本地访问。宝塔面板把MySQL管理做成了可视化界面,但远程授权仍要手动改权限主机。本文从实操角度说明如何在宝塔中开启3306端口、在云厂商安全组放行入站规则,以及用SQL命令将root或新建用户授权为百分号主机。同时指出只改面板防火墙却忘了云安全组导致连接超时的常见误区,并给出绑定指定IP提升安全性的写法。按步骤检查,基本能解决本地Navicat或程序服务器跨机访问数据库的问题。

在服务器上装好宝塔面板后,很多项目需要让另一台机器上的程序或者本地电脑的数据库工具连过来。宝塔自带的安全组和软件防火墙、MySQL自身的访问权限是三道独立关卡,任何一层没开都会连不上。下面按真实环境把配置过程拆开讲。

一、在宝塔面板中放行数据库端口

宝塔面板自己带了一个防火墙模块,它管的是系统层的iptables或firewalld规则。即便你在云厂商那里开了端口,如果面板防火墙把3306给拒了,照样不通。进入宝塔后台,点击左侧“安全”,在“端口规则”里添加一条:端口填3306,协议TCP,备注写MySQL远程,策略允许。保存后规则立即生效。

需要注意的是,有些人在这里只看到SSH的22端口,以为数据库默认开放,其实MySQL安装后监听在127.0.0.1时,宝塔并不会自动加放行。你可以到“软件商店”找到已安装的MySQL,点“设置”里面的“性能调整”,确认监听地址不是强制绑定内网才放心。如果监听是127.0.0.1,远程包根本进不了MySQL进程。

1.1 检查监听地址

在服务器命令行执行以下命令,看MySQL绑定到哪个IP:

netstat -tunlp | grep 3306
# 若显示 127.0.0.1:3306 说明只本地
# 若显示 0.0.0.0:3306 或 :::3306 则可接受外部

如果绑定到本地,要修改MySQL配置文件。宝塔的配置文件一般在 /www/server/mysql/my.cnf 或 /etc/my.cnf,把 bind-address=127.0.0.1 改成 bind-address=0.0.0.0 然后重启数据库。改之前建议先备份原文件。

二、云服务器安全组入站放行

这是最容易漏的一步。宝塔防火墙只管机器内部,云厂商的安全组是外部网络的第一道闸。以常见云为例,登录控制台,找到对应实例的安全组,添加入站规则:协议TCP,端口3306,授权对象填你想放行的IP。如果是临时测试,可填 0.0.0.0/0 表示全部放行,但生产环境绝不建议。

安全组和宝塔防火墙是“与”的关系,两边都要允许才通。很多人改完面板发现还是连不上,用 telnet 你的服务器IP 3306 测试超时,八成就是安全组没配。配置后通常秒级生效,不需要重启实例。

层级位置作用
云安全组厂商控制台控制外部流量能否到达网卡
系统防火墙宝塔安全页控制本机iptables规则
MySQL权限数据库内用户host控制账号能从哪台机器登录

三、数据库用户权限授权

端口通了只是网络通,MySQL还会校验你用的账号是否允许从远程IP连。默认安装的root@localhost只能本机登。我们要么新建一个远程用户,要么改root的host。

3.1 新建专用远程账号

进宝塔“数据库”页面,点“添加数据库”,设好名称和密码,这时候建的用户默认也是本地。我们到“phpMyAdmin”或用SSH进MySQL命令行授权:

-- 创建允许从任意IP连接的用户
CREATE USER 'remote_user'@'%' IDENTIFIED BY '你的强密码';
-- 授予某库全部权限
GRANT ALL PRIVILEGES ON your_db.* TO 'remote_user'@'%';
FLUSH PRIVILEGES;

上面的 % 代表所有IP。如果只想给固定IP,比如办公网络 1.2.3.4,就把 % 换成 '1.2.3.4'。这样即使别人扫到端口,没有这个IP也登不进来,安全性更好。

3.2 修改已有账号host

如果不想新建用户,也可以直接改表:

USE mysql;
UPDATE user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;

不过把root放开到全网风险很高,推荐只给特定IP或者新建低权限账号。改完可以用本地Navicat填服务器公网IP、3306、刚设的账号密码测试,能进说明三层都通了。

四、常见故障与排查顺序

连不上时按下面顺序查:先用 telnet IP 3306 看网络层;通了再看MySQL错误提示,如果是 access denied 就是权限host不对;如果是 timeout 就是安全组或面板防火墙没开。不要一上来就改配置文件,容易把监听搞错。

另外宝塔有时候装了Fail2Ban这类防爆破插件,多次输错会封IP,远程调试时若被ban,要在面板里解封。整体来说,只要安全组、面板端口、MySQL用户host三处对齐,宝塔下的数据库远程连接就能稳定跑起来。

宝塔面板数据库远程连接权限授权修改时间:2026-08-04 10:09:56

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