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

RDS MySQL连接失败报2003/10060错误 无法创建数据库

RDS MySQL 10060连接超时排查方案

mysql.connector.errors.InterfaceError: 2003伴随10060错误码,本质是TCP连接请求超时,流量根本没到达MySQL服务层,和填写的用户名、密码是否正确没有关系,不用在账号权限上反复排查,按以下优先级逐一验证:

  • 先核对RDS公网配置是否真的生效
    开启“公网可访问”开关不代表自动分配了公网连接地址:进入RDS实例详情页,找到连接信息板块,确认存在独立的公网连接端点,且该端点已经绑定了有效的公网IP(部分云厂商需要单独申请弹性公网IP绑定,不会自动分配)。不要把VPC内网端点当成公网端点填,这是最高发的配置错误。
  • 核对监听端口配置
    确认实例详情页标注的MySQL公网监听端口是3306,如果自定义修改过端口,Python代码连接时必须显式传入port=你的实际端口参数,驱动默认只会连接3306端口。
  • 排查多层访问控制拦截
    放通安全组所有流量不代表流量不会被拦截:
    1. 检查实例所在VPC的网络ACL规则:网络ACL作用在子网层面,优先级高于安全组,如果入方向规则没有放通本地客户端的公网IP到3306端口的访问,流量会在到达实例前被丢弃
    2. 不要长期配置0.0.0.0/0的全放通规则:这种配置很容易触发云平台的基础DDoS防护、异常流量拦截机制,把本地的公网IP单独加到RDS的IP白名单、安全组入方向规则里,再测试连接。
  • 跳过业务代码先做基础网络连通性验证
    直接跑Python代码测试没有意义,先在运行代码的机器上做两个基础测试:
    1. Windows系统开命令提示符执行telnet 你的RDS公网端点 3306,Linux/macOS执行nc -zv 你的RDS公网端点 3306
    2. 如果上述命令提示连接失败/超时,问题100%出在网络链路,和Python驱动、数据库配置无关;如果命令提示连接成功,回去检查代码里的host参数是否填错——不要带http:///https://前缀、不要多打前后空格、不要填只读实例的端点。
  • 内网连通性交叉验证
    临时在RDS同VPC同可用区下开一台按量付费的ECS,用RDS内网端点连接实例,如果内网能正常连通、公网连不通,直接提工单找云厂商排查公网链路故障即可,不用自己反复调整配置。

连通性验证通过后,可以用如下代码创建数据库:

import mysql.connector

mydb = mysql.connector.connect(
  host="替换为你的RDS纯公网端点",
  user="admin",
  password="admin123",
  port=3306 # 若自定义过端口请替换为实际值
)

mycursor = mydb.cursor()
mycursor.execute("CREATE DATABASE test")

连通性测试完成后请立刻收紧安全组、IP白名单规则,仅允许信任的IP访问3306端口,避免实例被暴力破解攻击。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:42:18