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

Docker容器内Python程序无法连接192.168.0.9的MySQL服务器

排查Docker容器内SQLAlchemy连接MySQL超时问题

针对你遇到的sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on '192.168.0.9' (timed out)")错误,按以下步骤逐一排查:

  • 先验证容器到MySQL服务器的网络连通性
    进入容器内部,先ping目标IP确认网络可达:

    ping 192.168.0.9
    

    如果ping不通,说明容器所在网络与MySQL服务器的子网存在隔离,检查宿主机的网络路由、Docker网络配置是否有变更。
    如果ping通,再测试MySQL端口(默认3306)是否开放:

    telnet 192.168.0.9 3306
    # 或者用nc工具
    nc -zv 192.168.0.9 3306
    

    端口不通的话,直接跳转到防火墙/安全组排查步骤。

  • 检查MySQL服务器的绑定地址与用户权限
    登录MySQL服务器,执行以下命令确认绑定地址是否允许外部访问:

    SHOW VARIABLES LIKE 'bind_address';
    

    如果结果是127.0.0.1,说明MySQL只允许本地连接,需要修改配置文件(如my.cnf或my.ini)将bind_address改为0.0.0.0,或者添加容器所在网段的IP,然后重启MySQL服务。
    同时检查连接用户的访问权限:

    SELECT user, host FROM mysql.user WHERE user='你的数据库用户名';
    

    如果host字段是localhost或特定IP,需要更新权限允许容器所在网段访问:

    GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'容器所在网段IP' IDENTIFIED BY '你的密码';
    FLUSH PRIVILEGES;
    

    或者直接允许所有IP访问(仅测试用,生产环境不建议):

    GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'%' IDENTIFIED BY '你的密码';
    FLUSH PRIVILEGES;
    
  • 排查MySQL服务器/宿主机的防火墙与安全组

    • 检查MySQL服务器的防火墙规则,确保3306端口对容器所在网段开放:
      以Ubuntu的ufw为例:
      ufw status
      # 如果没有允许规则,添加:
      ufw allow from 容器所在子网 to any port 3306
      
    • 如果是云服务器,检查云平台的安全组配置,确认3306端口的入站规则是否包含容器所在的公网/内网IP段。
  • 检查Docker网络配置
    查看容器的网络模式:

    docker inspect 你的容器名称 | grep NetworkMode
    

    如果使用默认bridge网络仍无法访问,可临时切换为host网络模式测试(该模式下容器共享宿主机网络栈):

    docker run --net=host -d 你的镜像名称
    

    切换后再运行Python函数测试,如果能连接,说明原Docker网络存在路由或隔离问题,需检查自定义网络的子网配置、网关设置。

  • 验证SQLAlchemy连接参数与依赖版本

    • 确认连接字符串中的用户名、密码、IP是否正确,有没有过期或拼写错误;尝试调大connect_timeout参数,比如改为30,排除短超时导致的连接失败:
      engineSql = sqlalchemy.create_engine('mysql+pymysql://...', connect_args={'connect_timeout': 30})
      
    • 检查近期是否更新了pymysql或sqlalchemy版本,新版本可能存在兼容性问题,回退到之前正常工作的版本测试:
      pip install pymysql==x.x.x sqlalchemy==y.y.y
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:24:57