我试图在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以及app引擎SDK,我不确定我错过了什么。
由于
答案 0 :(得分:2)
它无法连接到它,因为您的本地环境无法识别主机/cloudsql/something:else
,这只能在生产环境中识别。
您可以按照这些方法使其在开发和生产环境中运行。
首先,您必须继续Google Cloud Console才能访问当前的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
}