GAE Python 3.7 标准无法连接到云 SQL 服务器

GAE Python 3.7 Standard can't connect to Cloud SQL server

我正在学习在 Google App Engine here 上部署 Django 应用程序的教程。我可以使用 cloud_sql_proxy 在本地 运行 应用程序,但是当我将应用程序部署到 GAE 时,应用程序失败并出现错误:

(2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)")

检查错误输出,看起来 django 正按预期尝试连接到位于 /cloudsql/<project>:<region>:<instance> 的 unix 套接字,只是由于某种原因失败了。是什么导致了这个问题?

您需要在 Django 设置中更改数据库连接。

appengine/standard_python37/django/mysite/settings.py

settings.py 文件包含 SQL 数据库的配置。 settings.py 中的代码使用 GAE_APPLICATION 环境变量来确定应用程序是 App Engine 上的 运行 还是本地计算机上的 运行:

当应用程序在 App Engine 上运行时,它会使用 /cloudsql Unix 套接字连接到 MySQL 主机。 当应用程序在您的本地计算机上运行时,它会使用 TCP 连接到 MySQL 主机,这需要用户名和密码。

阅读文档底部,here

编辑:确保您已启用云 SQL API。

看来问题出在我用于教程的项目上。该项目的 Google App Engine 服务帐户以某种方式被撤销了权限。恢复这些权限(赋予其编辑者角色)后,教程将在原始项目上运行。