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

Django项目连接Google Cloud SQL(PostgreSQL)失败求助及配置指南

Django连接Google Cloud SQL(PostgreSQL)完整配置指南

一、先解决当前连接错误

你遇到的是网络或SSL配置层面的问题,按以下步骤排查:

1. 检查Cloud SQL的授权IP

登录Google Cloud控制台,找到你的Cloud SQL实例:

  • 进入「连接」→「公共IP」→「授权网络」
  • 添加Django服务器的公网IP(格式为x.x.x.x/32),保存后等待1-2分钟生效
  • 测试阶段可临时添加0.0.0.0/0(生产环境禁止使用,风险极高)

2. 配置SSL连接(Cloud SQL默认强制要求)

Cloud SQL不允许无SSL的公网连接,必须配置证书:

  1. 在Cloud SQL实例的「连接」→「SSL」页面,点击「创建客户端证书」,下载三个文件:server-ca.pem、client-cert.pem、client-key.pem
  2. 将这三个文件放到Django项目的安全目录(比如新建ssl文件夹,不要提交到版本库)
  3. 修改settings.py的数据库配置,添加SSL参数:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'HOST': '你的Cloud SQL公网IP',
        'USER': '你的数据库用户名',
        'PASSWORD': '你的数据库密码',
        'NAME': '你的数据库名称',
        'PORT': '5432',
        'OPTIONS': {
            'sslmode': 'require',
            'sslrootcert': '/证书文件绝对路径/server-ca.pem',
            'sslcert': '/证书文件绝对路径/client-cert.pem',
            'sslkey': '/证书文件绝对路径/client-key.pem',
        },
    }
}

注意替换为你自己的证书实际路径。

3. 检查服务器防火墙

确保Django服务器的出站规则允许访问5432端口(PostgreSQL默认端口),如果是云服务器(如GCE、阿里云ECS),需要在安全组中添加出站规则:允许TCP 5432端口访问Cloud SQL的公网IP。

二、完整配置流程(从0到1)

前置准备

  • 已创建Cloud SQL PostgreSQL实例,记录好公网IP、数据库用户名、密码、数据库名称
  • 安装依赖包:pip install psycopg2-binary(比psycopg2更易安装适配)

配置步骤

  1. 按照上述方法完成Cloud SQL授权IP设置和SSL证书配置
  2. 修改settings.py中的数据库配置(即带SSL参数的代码段)
  3. 测试连接:运行python manage.py migrate,无报错则连接成功

三、生产环境安全优化方案(推荐)

使用Cloud SQL Auth Proxy替代公网IP连接,无需暴露数据库公网IP,也无需手动配置SSL:

  1. 在Django服务器上下载并安装Cloud SQL Auth Proxy
  2. 启动代理:./cloud-sql-proxy 你的项目ID:实例区域:实例名称
  3. 修改Django配置:将HOST改为127.0.0.1,保留PORT为5432,删除OPTIONS中的SSL参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:52:37