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

部署在App Engine的Django应用无法连接私有IP的Cloud SQL

解决GAE Django连接私有IP Cloud SQL的问题

先确认Cloud SQL所属VPC网络

  • 打开Cloud SQL控制台,进入目标MySQL实例的详情页
  • 切换到「连接」标签,在「私有IP」区块里会直接显示实例绑定的VPC网络名称(默认通常是default网络)
  • 你在VPC页面看到的10.171.0.0是该VPC下的子网IP段,对应的就是Cloud SQL所在的VPC,必须保证Serverless VPC Access连接器创建在这个VPC内

修正连接器与配置步骤

1. 重建Serverless VPC Access连接器

  • 删除之前创建的10.8.0.0/20连接器(如果它不在Cloud SQL的VPC里)
  • 新建连接器时:
    • 选择Cloud SQL实例所在的VPC网络
    • 子网IP段要避开现有VPC的子网段(比如现有是10.171.0.0/20,就选10.172.0.0/20这类不重叠的段)
    • 确保连接器的区域和Cloud SQL、GAE服务的区域完全一致

2. 配置GAE的app.yaml

  • 必须在app.yaml中添加VPC连接器的引用,否则GAE无法访问私有网络:
    vpc_access_connector:
      name: "projects/你的项目ID/locations/目标区域/connectors/你的连接器名称"
    
  • 确认项目已启用Cloud SQL Admin API(GAE连接私有IP实例依赖该API)

3. 修正Django settings.py的数据库配置

  • 直接使用Cloud SQL的私有IP作为HOST,不要用127.0.0.1(本地代理地址,GAE环境不适用)或连接器的网段(10.8.0.0是网段不是实例地址)
  • 示例配置:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': '你的数据库名称',
            'USER': '数据库用户名',
            'PASSWORD': '数据库密码',
            'HOST': 'Cloud SQL的私有IP地址',
            'PORT': '3306',
        }
    }
    

4. 检查VPC防火墙规则

  • 在VPC控制台的「防火墙」页面,添加一条入站规则:
    • 目标:指定Cloud SQL实例的私有IP
    • 来源:Serverless VPC Access连接器的IP段
    • 协议与端口:TCP:3306
    • 动作:允许

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 04:06:25