必须配置MySQL远程访问:一、修改bind-address为0.0.0.0并重启;二、创建主机为%或指定IP的用户;三、放行服务器及云平台3306端口;四、用telnet和mysql命令验证连接;五、限制用户主机范围和防火墙IP白名单以提升安全。

如果您在使用宝塔面板部署的应用需要连接位于其他服务器上的 MySQL 数据库,或需从本地开发环境直连宝塔服务器的 MySQL 实例,则必须正确配置外部数据库连接并开放远程访问权限。以下是实现该目标的具体操作步骤:
一、修改MySQL配置文件允许远程监听
默认情况下,MySQL 仅绑定到 127.0.0.1,拒绝来自外部 IP 的连接请求。需调整其监听地址为 0.0.0.0 或指定公网 IP,使服务接受非本地连接。
1、登录宝塔面板,在左侧菜单点击数据库,找到对应 MySQL 实例右侧的设置按钮。
2、在弹出页面中点击配置修改选项卡。
3、定位到 bind-address = 127.0.0.1 这一行,将其修改为 bind-address = 0.0.0.0;若仅允许特定网段访问,可替换为对应内网或公网 IP(如 bind-address = 192.168.1.100)。
4、保存修改后,点击重启数据库使配置生效。
二、创建支持远程访问的数据库用户
MySQL 用户默认创建时主机限制为 localhost,无法从外部 IP 登录。必须新建或修改用户,将其主机字段设为 %(表示任意主机)或具体客户端 IP。
1、在宝塔面板数据库页面,点击添加数据库,填写数据库名、用户名和密码,完成后暂不关闭窗口。
2、点击该数据库右侧的管理按钮,进入 phpMyAdmin 界面。
3、顶部切换至用户账户标签页,找到刚创建的用户名,点击右侧编辑权限。
4、在登录信息区域,将主机字段由 localhost 改为 %(或填入确切的客户端公网 IP,如 203.123.45.67)。
5、滚动到底部,点击执行保存更改。
三、放行服务器防火墙端口
即使 MySQL 已监听 0.0.0.0,若系统防火墙(如 firewalld 或宝塔内置防火墙)未开放 3306 端口,外部连接仍会被拦截。
1、在宝塔面板左侧点击安全,进入防火墙管理界面。
2、在放行端口输入框中输入 3306,点击放行按钮。
3、若服务器使用云厂商(如阿里云、腾讯云),还需登录对应云控制台,在安全组规则中添加入方向规则:协议类型为TCP,端口范围为3306,源 IP 可设为 0.0.0.0/0(不推荐)或限定具体 IP 段。
四、验证远程连接可用性
完成上述配置后,需通过外部客户端测试是否能成功建立 TCP 连接并完成身份认证。
1、在本地电脑打开终端(Windows 使用 CMD 或 PowerShell,macOS/Linux 使用 Terminal)。
2、执行命令:telnet [服务器公网IP] 3306,若返回空白响应或 Connected 字样,说明端口可达。
3、使用 MySQL 客户端工具(如 MySQL Workbench、Navicat 或命令行 mysql 命令)尝试连接:mysql -h [服务器公网IP] -u [用户名] -p,输入密码后若进入 MySQL 提示符,表明远程访问已启用成功。
五、限制远程访问范围提升安全性
开放 % 主机权限存在风险,应尽可能缩小授权范围,避免暴露全部数据库用户给互联网。
1、返回 phpMyAdmin 的用户账户页面,对每个远程用户单独编辑权限。
2、将主机字段由 % 修改为具体客户端 IP 地址(如 192.168.10.5)或 CIDR 网段(如 192.168.20.0/24)。
3、若仅需某应用服务器访问,可在宝塔防火墙中设置IP 白名单规则,仅允许该服务器 IP 访问 3306 端口。










