如何允许外部域名访问本地XAMPP环境中的MySQL数据库
解决XAMPP内置MySQL外部访问Connection Refused报错方案
问题背景
需要实现托管站点www.example.com访问本地XAMPP运行的MySQL数据库,满足Python脚本兼容性要求,数据流向为本地XAMPP数据库 → 公网托管站点,操作时出现连接被拒绝报错。
修复步骤
1. 修改MySQL监听配置
- 打开XAMPP控制面板,点击MySQL模块对应的「Config」按钮,选择配置文件
my.ini(Windows系统)或my.cnf(macOS/Linux系统) - 定位到
bind-address配置项,默认值为127.0.0.1(仅允许本地访问),修改为0.0.0.0允许所有IP访问,或直接填写www.example.com对应的服务器公网IP以降低安全风险 - 检查是否存在
skip-networking配置,如有则在该行开头加#注释掉,该配置会禁用MySQL的TCP/IP连接能力 - 保存配置文件后,重启XAMPP的MySQL服务使配置生效
2. 开启数据库用户外部访问权限
- 打开XAMPP自带的phpMyAdmin管理页面,进入「用户账户」管理界面,找到你Python脚本连接数据库使用的账号
- 编辑该用户的权限设置,在「主机」字段将默认值
localhost修改为%(允许所有IP登录),或直接填写www.example.com的服务器公网IP - 执行权限刷新命令使配置生效:
FLUSH PRIVILEGES;
3. 配置网络端口放行规则
- 本地运行XAMPP的设备需要在系统防火墙中添加入站规则,放行MySQL默认端口3306的访问请求
- 若本地设备处于局域网环境,需要登录路由器管理后台配置端口映射:将路由器公网IP的3306端口,映射到本地运行XAMPP设备的内网IP+3306端口
- 可在公网环境执行命令测试连通性:
telnet 本地网络公网IP 3306,无报错则说明网络层面已经打通
4. 托管站点连接配置调整
在www.example.com的数据库连接配置中,将MySQL主机地址填本地网络的公网IP,端口填3306,使用刚才配置了外部访问权限的数据库账号即可正常连接。
安全提示:直接将MySQL服务暴露在公网存在数据泄露风险,建议仅放行托管服务器的固定IP访问3306端口,同时为对应数据库账号设置强密码、仅分配业务必需的最小读写权限。
内容的提问来源于stack exchange,提问作者Donovan Whysong
相关产品推荐
相关产品推荐

