我正在学习在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套接字,只是因为某些原因而失败了。导致此问题的原因可能是什么?
发布于 2019-06-14 01:21:44
看起来问题出在我在教程中使用的项目上。不知何故,该项目的Google App Engine服务帐户的权限已被撤销。在恢复这些权限(赋予它Editor角色)之后,本教程在原始项目上工作。
发布于 2019-06-13 07:36:59
您需要在Django设置中更改数据库连接。
appengine/standard_python37/django/mysite/settings.py
SQL文件包含settings.py数据库的配置。settings.py中的代码使用GAE_APPLICATION环境变量来确定应用程序是在app Engine上运行还是在本地计算机上运行:
当应用程序在app Engine上运行时,它使用/cloudsql Unix套接字连接到MySQL主机。当该应用程序在您的本地计算机上运行时,它通过TCP连接到MySQL主机,这需要用户名和密码。
阅读文档的底部,here
编辑:确保您已经开通了云SQL API。
https://stackoverflow.com/questions/56570422
复制相似问题