gpt4 book ai didi

python - GAE Django cloudsql 套接字

转载 作者:行者123 更新时间:2023-12-01 05:18:49 35 4
gpt4 key购买 nike

我正在尝试在 Google 应用引擎上设置一个 django 项目,但我似乎无法从我的计算机连接到数据库来执行诸如syncdb 等操作。

这是我的配置(已更改)

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '/cloudsql/something:else',
'NAME': 'db_name',
'USER': 'db_user',
}
}

现在与数据库的连接可以在已部署的应用程序上运行,但当我从我的一端运行它时,我得到的错误是

Can't connect to local MySQL server through socket '/cloudsql/something:else'

我正在运行 osx,显然我安装了 google cloud sdk 以及应用程序引擎 SDK,我不确定我缺少什么。

谢谢

最佳答案

无法连接到它,因为您的本地环境无法识别主机 /cloudsql/something:else,这只能在生产环境中识别。

您可以按照这些方法使其在开发和生产环境中运行。

在生产和本地中使用相同的生产 Cloud SQL 实例

首先,您必须转到 Google Cloud Console授予对您当前 IP 的访问权限。

授予访问您当前 IP 的权限

  1. 转到 Cloud SQL 控制台,点击您的实例名称。
  2. 点击“编辑”按钮
  3. 在“分配 IP 地址”中,选择“分配 IP 地址”
  4. 在“授权 IP 地址”下面,添加您的开发计算机上的 IP 地址。

数据库设置

然后使用如下设置:

#!/usr/bin/env python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'USER': 'root',
'PASSWORD': '<your-database-password>',
'HOST': '<your-database-ip>',
'NAME': '<your-database-name>',
}
}

为生产和开发服务器使用单独的不同数据库

您可以单独设置生产服务器和本地开发服务器:

if os.getenv("SERVER_SOFTWARE", "").startswith("Google App Engine"):
# production
DATABASES = {
# production database settings
}
else:
# local dev server
DATABASES = {
# local database settings
}

关于python - GAE Django cloudsql 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22788770/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com