【问题标题】:How to connect to Google Cloud SQL Proxy from Django?如何从 Django 连接到 Google Cloud SQL 代理?
【发布时间】:2018-06-10 20:01:05
【问题描述】:
我很高兴设法在端口 5432 上运行 Google SQL 代理。
我试图按照教程https://cloud.google.com/python/django/flexible-environment
但我不知道如何设置 settings.py 文件。
有多种术语让我很困惑:
- 来自 gcloud 的 Google App Engine 默认身份验证登录名/密码
- 来自 gcloud 的 Google App Engine 服务身份验证登录名/密码
- 项目实例名称
- 数据库密码
- 数据库实例名称
- 数据库连接名称
- 数据库登录名/密码
如果有人可以清楚地说明他们的意思以及如何使这个示例有效,我会很高兴。
【问题讨论】:
标签:
sql
django
google-app-engine
proxy
【解决方案1】:
以下是您遇到问题的术语的快速摘要:
- 来自 gcloud 的 Google App Engine 默认身份验证登录名/密码:与项目所有者(您用于创建项目的帐户)相关的凭据。
- 来自 gcloud 的 Google App Engine 服务身份验证登录名/密码:这意味着您将使用服务帐户访问 gcloud。
对于身份验证过程,最好生成一个凭据文件并使用它来识别您的帐户。建议将凭证生成为 JSON 文件(无需密码),然后将其导入 gcloud。之后,只需导出一个环境变量,指示在哪里可以找到凭证文件:
export GOOGLE_APPLICATION_CREDENTIALS=”[PATH_TO_JSON_FILE]”
关于 Cloud SQL 的相关术语,其含义如下:
- 项目实例名称:您必须指项目名称,即您创建用于本教程的 Google Cloud 项目的名称。
- 数据库实例名称:您为 Cloud SQL 实例指定的名称(例如 polls-instance)。
- 数据库登录名/密码:您为访问数据库而创建的用户名和密码。
- 数据库密码:数据库本身没有密码,因此这表示您创建的用户的密码。
- 数据库连接名称:用于通过 Cloud SQL 代理连接到数据库的名称。
要获取数据库连接名称,请使用以下命令,将 [YOUR_INSTANCE_NAME] 更改为您用于实例的名称:
gcloud sql instances describe [YOUR_INSTANCE_NAME]
如果您在安装 requirements.py 时遇到问题,可以尝试使用以下命令为 python3 准备虚拟环境:
virtualenv -p python3 envname
如果问题仍然存在,请尝试使用 pip 单独安装每个模块。按照这些步骤,您应该可以顺利完成本教程。