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 服务帐户以某种方式被撤销了权限。恢复这些权限(赋予其编辑者角色)后,教程将在原始项目上运行。
我正在学习在 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 服务帐户以某种方式被撤销了权限。恢复这些权限(赋予其编辑者角色)后,教程将在原始项目上运行。