登录
首页 >  文章 >  php教程

宝塔数据库远程访问配置方法

时间:2026-03-28 23:15:38 412浏览 收藏

本文详解了在宝塔面板环境下安全、可靠地开启MySQL数据库远程访问的完整实践路径,直击“能连上却连不通”的常见痛点——从修改MySQL绑定地址(bind-address)与禁用skip-networking,到精细化配置用户Host(拒绝盲目用%)、同步打通云服务器安全组与宝塔防火墙双层防护,再到用telnet精准定位网络层或权限层故障,每一步都强调配置逻辑的严谨性与安全边界。它不只教你怎么改配置,更告诉你为什么必须这样改、哪里最容易踩坑、以及如何层层验证确保万无一失。

宝塔面板数据库如何开启远程访问_修改权限并放行3306端口

MySQL 配置文件里 bind-address 必须改对,否则监听无效

宝塔默认安装的 MySQL 只监听 127.0.0.1,这意味着它压根不接收外部 IP 的连接请求——哪怕你开了防火墙、建了用户,也连不上。这不是权限问题,是网络层直接拒收。

  • 登录宝塔 → 【文件】→ 打开 /www/server/mysql/etc/my.cnf
  • 找到 bind-address = 127.0.0.1 这一行,改成 bind-address = 0.0.0.0(允许所有 IPv4 地址)或具体外网 IP(如 bind-address = 192.168.10.5
  • 确认配置中没有 skip-networking 这行;如果有,必须删掉或加 # 注释
  • 保存后,回到【数据库】页面,点击对应 MySQL 实例右侧的【重启】按钮

用户主机字段填 % 是最常见误操作,安全风险极大

很多教程直接让你把 phpMyAdmin 里用户的 Host 改成 %,结果整个数据库暴露在公网。这不是“能连上”就行的事,而是等于把锁孔焊开扔在路边。

  • 更稳妥的做法:在 phpMyAdmin 【用户】页点【+添加用户】,Host 填具体客户端 IP(如 203.0.113.25)或 CIDR 段(如 203.0.113.0/24
  • 如果必须用通配符,至少配合宝塔防火墙的 IP 白名单功能,在【安全】→【MySQL(3306)】→【设置】里勾选【IP白名单】并填入可信 IP
  • 不要用 root 用户远程连接;新建专用账号,权限只给到具体数据库,避免 GRANT ALL ON *.*

云服务器安全组和宝塔防火墙是两道独立关卡,漏一个就失败

很多人只开了宝塔防火墙的 3306 端口,却忘了云厂商(阿里云/腾讯云等)的安全组才是第一道网关。两者都得配,且规则要一致。

  • 先去云控制台 → 安全组 → 添加入方向规则:协议类型 TCP端口范围 3306/3306源 IP 建议填具体 IP 或网段,别写 0.0.0.0/0
  • 再回宝塔 → 【安全】→ 放行端口 3306;若已存在,点右侧【设置】确认没被禁用
  • Linux 系统级防火墙(如 firewalld)也可能干扰,可临时关闭测试:systemctl stop firewalld,确认连通后再按需放行

测试连接前先验证端口是否真通,别让错误信息误导判断

Navicat 报 “Connection refused” 不一定代表配置错,可能是端口不通;报 “Access denied” 才说明认证或权限出问题。得先分清是哪一层挂了。

  • 从客户端机器执行:telnet 你的服务器IP 3306nc -zv 你的服务器IP 3306,能通才说明网络链路没问题
  • 如果 telnet 失败,优先查云安全组和宝塔防火墙;如果成功但 mysql -h 连不上,再查用户 Host、密码、bind-address
  • MySQL 8.x 用户注意:GRANT 语句不再支持 IDENTIFIED BY,必须先 CREATE USER,再 GRANT,最后 FLUSH PRIVILEGES

真正麻烦的从来不是改哪几行配置,而是每层网络策略(云平台、系统防火墙、MySQL 自身绑定、用户授权)都得对得上号,而且顺序不能乱:先确保端口可达,再谈权限分配。

终于介绍完啦!小伙伴们,这篇关于《宝塔数据库远程访问配置方法》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>