如何从异网PC通过Python远程连接Windows本地MySQL服务器?
异网环境下连接Windows MySQL服务器的配置步骤
1. 修改MySQL绑定IP,允许外部访问
找到MySQL配置文件(Windows下通常在C:\ProgramData\MySQL\MySQL Server X.X目录,ProgramData为隐藏文件夹),打开my.ini:
- 定位到
[mysqld]段落,找到bind-address配置项 - 将其值改为
0.0.0.0(允许监听所有网卡的请求) - 保存文件后,重启MySQL服务(在Windows服务列表中找到对应服务,右键选择“重启”)
2. 配置MySQL用户远程访问权限
默认MySQL用户仅允许本地登录,需为你的项目用户授权远程访问:
- 打开MySQL命令行工具,登录root账号
- 执行以下SQL语句(替换占位符为你的实际信息):
GRANT ALL PRIVILEGES ON *.* TO '你的项目用户名'@'%' IDENTIFIED BY '你的用户密码' WITH GRANT OPTION; FLUSH PRIVILEGES;
%表示允许该用户从任意IP地址登录,若需限制特定IP,可将%替换为目标设备的公网IP。
3. 放行Windows防火墙的MySQL端口
MySQL默认端口为3306,需在Windows防火墙中添加入站规则:
- 打开「Windows Defender防火墙」→「高级设置」
- 点击「新建规则」,选择「端口」类型,点击下一步
- 选择「TCP」,输入特定本地端口
3306,点击下一步 - 选择「允许连接」,点击下一步
- 勾选所有网络类型(包括公网),点击下一步
- 为规则命名(如「MySQL 3306 远程访问」),完成配置
4. 配置路由器端口转发(异网访问核心步骤)
你的Windows电脑处于局域网内,异网设备需通过路由器公网IP转发请求到本地:
- 登录路由器管理后台(通常地址为
192.168.1.1或192.168.0.1,具体见路由器说明书) - 找到「端口转发」/「虚拟服务器」功能
- 添加转发规则:
- 外部端口:
3306 - 内部端口:
3306 - 内部IP:你的Windows电脑局域网IP(可通过cmd执行
ipconfig查看「IPv4地址」) - 协议:
TCP
- 外部端口:
- 保存规则并重启路由器(部分路由器需重启生效)
5. Python连接配置
- 获取你的路由器公网IP:打开浏览器搜索「我的公网IP」,记录结果(如
123.45.67.89) - 修改Python连接代码,将
host改为该公网IP:
import mysql.connector try: db_conn = mysql.connector.connect( host="你的公网IP", port=3306, user="你的项目用户名", password="你的用户密码", database="目标数据库名" ) print("连接成功") except mysql.connector.Error as err: print(f"连接失败: {err}")
额外注意点
- 若你的公网IP是动态分配的,建议配置DDNS服务绑定固定域名,避免IP变动后无法连接
- 不要开放root用户的远程访问权限,使用专门的项目用户以降低安全风险
- 若运营商分配的是内网IP(无法直接通过公网访问),可改用内网穿透工具(如frp)替代端口转发
内容的提问来源于stack exchange,提问作者Connor James
相关产品推荐
相关产品推荐

