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

GitHub Actions执行Python脚本连接MariaDB超时问题咨询

问题分析与解决方案

从错误信息和你描述的情况来看,核心问题是GitHub Actions的运行环境无法访问你的MariaDB服务器,而本地能正常连接,大概率是网络访问限制导致的,具体原因和解决方法如下:

主要原因

  1. 防火墙/安全组白名单限制
    你的本地IP已经被加入MariaDB服务器的防火墙或云安全组白名单,允许访问3306端口;但GitHub Actions的运行环境属于GitHub的公共服务器,其IP不在白名单内,因此被拒绝连接。另外很多服务器会禁用ICMP请求(ping),所以ping超时是正常的,不用作为判断依据。

  2. MariaDB绑定地址限制
    如果你的MariaDB配置文件(my.cnf或my.ini)中bind-address设置为127.0.0.1或仅内网IP,那么MariaDB只会监听本地/内网请求,外网(包括GitHub Actions)无法建立连接。

解决步骤

1. 检查并更新防火墙/安全组规则

  • 临时测试:在MariaDB服务器的防火墙或云安全组中,临时允许所有IP访问3306端口,然后重新运行GitHub Actions工作流。如果能正常连接,说明确实是白名单问题。
  • 长期方案:获取GitHub官方公布的Actions runner IP段,将这些IP段添加到MariaDB服务器的白名单中。注意GitHub的IP段会定期更新,需要同步维护。

2. 验证MariaDB绑定地址

  • 打开MariaDB配置文件,查找bind-address配置项:
    bind-address = 0.0.0.0
    
    将其设置为0.0.0.0(允许所有IP访问),然后重启MariaDB服务。如果你的MariaDB部署在内网,也可以设置为内网IP+允许GitHub IP段的方式。

3. 测试端口连通性

在GitHub Actions工作流中添加端口测试步骤,替代ping命令:

- name: Test MariaDB port connectivity
  run: nc -zv <你的MariaDB IP> 3306

如果命令返回成功,说明端口能通;如果失败,进一步确认防火墙或网络路由问题。

4. 替代方案(若无法放开IP限制)

  • 使用自托管GitHub Runner:在能访问MariaDB的内网服务器上部署自托管Runner,让脚本在该环境运行,避免跨网络访问限制。
  • 建立SSH隧道:在GitHub Actions工作流中通过SSH隧道连接MariaDB,将本地端口转发到MariaDB服务器的3306端口。

内容的提问来源于stack exchange,提问作者김민선

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:11:00