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

使用Dataflow Runner运行Apache Beam Python批处理任务时MySQL连接失败

问题分析与解决

核心问题:Direct Runner在本地执行,能访问你本机的MySQL;但Dataflow Runner的Worker运行在GCP云虚拟机上,这些Worker的127.0.0.1指向自身虚拟机,而非你的本地机器,自然无法连接到本地MySQL服务。

解决方案

  • 修正MySQL连接地址:将连接配置中的host从127.0.0.1/localhost替换为:
    • 若MySQL部署在GCP同VPC的云服务器/Cloud SQL,使用VPC内部IP;
    • 若MySQL在本地,需先将其暴露到公网(不推荐生产环境),使用你的公网IP,或通过Cloud VPN/Cloud Interconnect打通本地与GCP VPC的网络。
  • 配置防火墙/安全组:确保MySQL所在机器的防火墙、GCP VPC安全组允许Dataflow Worker的IP段访问MySQL默认端口(通常为3306)。如果使用Cloud SQL,需在实例配置中添加Dataflow Worker的服务账号或允许对应IP访问。
  • 检查连接配置细节:确认beam-mysql连接器的port、username、password配置正确,错误日志中的随机端口是连接失败时的临时端口,不是MySQL的实际服务端口。
  • 优先使用托管服务:生产环境建议将MySQL迁移到Cloud SQL,它能与Dataflow无缝集成,无需手动配置复杂的网络规则。

关键错误日志

mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on '127.0.0.1:41849' (111)
beam_mysql.connector.errors.MySQLClientError: Failed to connect mysql, Raise exception: 2003 (HY000): Can't connect to MySQL server on '127.0.0.1:36247' (111)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:01:33