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

亚马逊EC2实例MySQL无法通过域名远程连接,IP连接正常求助

解决MySQL无法通过域名远程连接的问题

听起来你已经搞定了HTTPS环境和IP远程连接,却卡在域名连接这一步,我来帮你梳理下可能的原因和解决办法:

1. 先确认域名解析是否准确指向EC2实例IP

首先得排查最基础的DNS解析问题,在本地终端跑以下命令验证:

nslookup mysiteweb.com
# 或者用dig工具更详细查看
dig mysiteweb.com

如果返回的IP和你用来成功连接的EC2公网IP不一致,那问题就出在域名解析上,需要去你的域名服务商后台修正A/AAAA记录,确保域名指向正确的EC2公网IP。

2. 检查安全组/网络ACL的端口规则

虽然用IP能连,但要注意:用域名连接本质是解析成IP后再连接,要确保所有解析到该域名的IP都能通过EC2的安全组和VPC网络ACL访问3306端口:

  • 安全组:入站规则添加TCP 3306端口,测试阶段可以临时开放0.0.0.0/0(测试完成后记得改回限定IP,保障安全)。
  • 网络ACL:因为是双向规则,入站和出站都要允许TCP 3306端口的流量通过。

3. 确认MySQL的绑定地址配置

虽然你用IP能连,但还是要检查MySQL是否允许监听所有网卡:

  • 找到MySQL配置文件(常见路径:/etc/my.cnf、/etc/mysql/my.cnf,不同系统可能有差异),查看bind-address参数:
    bind-address = 0.0.0.0
    
    如果参数是127.0.0.1则只能本地连接,如果是内网IP则公网IP也无法连接,但你IP能连的话这条大概率没问题,不过确认下更稳妥。
  • 修改后重启MySQL服务生效:
    sudo systemctl restart mysqld
    # 或者用service命令
    sudo service mysql restart
    

4. 排查本地/中间网络的拦截问题

有时候本地防火墙、杀毒软件,或者你所在网络的代理会阻止3306端口的出站连接,用telnet测试下网络连通性:

telnet mysiteweb.com 3306

如果显示Connection refused,说明是网络层面的问题;如果能正常连接,那大概率是IntelliJ的配置细节问题。

5. 检查IntelliJ的连接配置细节

再核对下IntelliJ的连接设置:

  • 确认域名拼写完全正确,有没有多打/少打字符。
  • 试试在JDBC URL里添加useSSL=false(仅测试用,因为你的域名是SSL保护,但MySQL远程连接默认可能不强制SSL,先排除这个变量):
    jdbc:mysql://mysiteweb.com:3306/你的数据库名?useSSL=false
    
  • 确认用户名、密码和用IP连接时完全一致,没有输入错误。

6. 检查EC2实例本地防火墙规则

如果EC2实例上启用了本地防火墙(比如iptables或ufw),也要确保它允许3306端口的入站流量:

  • 针对ufw:
    sudo ufw allow 3306/tcp
    sudo ufw reload
    
  • 针对iptables:
    sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
    sudo service iptables save
    

按照上面的步骤逐一排查,应该能定位到问题所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:33:13