You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从EC2 Ubuntu实例连接本地Windows的MySQL服务器?

解决从Ubuntu EC2实例连接本地Windows MySQL服务器的问题

问题描述

我本地有运行在Windows系统上的MySQL服务器,现尝试从Ubuntu EC2实例连接该数据库,却提示“无法连接到我的IP上的MySQL服务器(110连接错误)”
MySQL连接错误提示

补充说明:我甚至无法从Ubuntu实例ping通本地IP


排查与解决步骤

既然连ping都不通,咱们先从最基础的网络层面排查,再处理MySQL的配置问题:

1. 确认本地公网IP与路由器端口转发

  • 先搞清楚你本地Windows机器的公网IP(不是内网的192.168.x.x这类),可以在Windows命令行敲curl ifconfig.me或者浏览器直接查公网IP。
  • 登录家里的路由器管理后台,找到「端口映射」或「虚拟服务器」选项,把MySQL默认的3306端口(如果改了自定义端口就用你设置的那个)转发到本地Windows机器的内网IP上,协议选择TCP(MySQL用TCP连接)。

2. 检查Windows防火墙设置

  • 打开Windows Defender防火墙的「高级设置」,新建一条入站规则:允许TCP协议的3306端口通过,测试阶段可以先允许所有外部IP访问,后续再限制为EC2实例的IP更安全。
  • 也可以临时关闭Windows防火墙做测试,如果能ping通了,说明就是防火墙拦截了,再重新配置规则就行。

3. 修改MySQL的绑定地址

  • 找到Windows上MySQL的配置文件(一般在C:\ProgramData\MySQL\MySQL Server 8.0\my.ini,具体路径看你的安装版本)。
  • 找到bind-address这一行,把它改成0.0.0.0(允许所有IP访问),或者直接注释掉该行(部分版本默认是注释状态)。
  • 修改完成后,在Windows服务里找到MySQL服务,右键重启生效。

4. 授权MySQL用户远程访问权限

  • 登录本地MySQL控制台(命令行敲mysql -u root -p,输入密码进入),执行以下SQL语句授权用户远程访问:
    GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%' IDENTIFIED BY '你的密码';
    FLUSH PRIVILEGES;
    
    要是想更安全,就把%换成你的EC2实例公网IP,只允许这个IP访问。

5. 测试连通性

  • 在Ubuntu EC2上先测试ping本地公网IP:ping 你的公网IP,能通了再测端口开放情况,用nc -zv 你的公网IP 3306(没装nc的话先敲sudo apt install netcat)。
  • 端口连通后,尝试连接MySQL:mysql -h 你的公网IP -u 你的用户名 -p,输入密码看能不能成功登录。

额外提醒

  • 有些运营商会屏蔽3306这类默认端口,如果以上步骤都没用,可以试试把MySQL端口改成3307这类非默认端口,同步修改路由器转发和防火墙规则。
  • 如果你的本地网络是NAT444类型(部分运营商会用),公网IP无法直接被外部访问,这种情况可以试试内网穿透工具(比如frp)来实现连接。

内容的提问来源于stack exchange,提问作者user9428418

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:11:01