Cloud 运行 上使用 Cloud SQL PostgreSQL DB 的 Django 应用程序出错 - 无法连接到数据库
Error with Django application on Cloud Run using Cloud SQL PostgreSQL DB - cannot connect to database
我在 Google Cloud on Cloud 运行 上有这个 Django 项目。它应该 连接到云 SQL PostgreSQL 数据库并工作,但它没有。这是settings.py
的数据库部分(我已经删除了私有数据):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'db',
'USER': 'user',
'PASSWORD': 'password',
'HOST': '/cloudsql/project:europe-west4:instance',
'PORT': '5432',
}
}
但是,当我尝试执行任何与数据库相关的操作(例如,登录)时,它会抛出错误
OperationalError at /accounts/login/
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/cloudsql/*project*:europe-west4:*instance*/.s.PGSQL.5432"?
如果我从 HOST 中删除 /cloudsql/
它会给出错误
OperationalError at /accounts/login/
could not translate host name "*project*:europe-west4:*instance*" to address: Name or service not known
当我使用 Cloud SQL 代理 exe 在我的本地计算机上进行测试时,它可以正常工作。但是,当我将它部署到云端时 运行 它没有。
尝试在 host
参数中使用完整的 url
您是否已启用从 Cloud 运行 连接到 Cloud SQL 实例?
尝试运行
gcloud run services update [your cloud run service name] \
--add-cloudsql-instances [project:region:instance]
同时检查您的 Cloud 运行 服务帐户是否具有 Cloud SQL Client
权限。有关如何执行此操作的详细信息,请参阅 this documentation。
我在 Google Cloud on Cloud 运行 上有这个 Django 项目。它应该 连接到云 SQL PostgreSQL 数据库并工作,但它没有。这是settings.py
的数据库部分(我已经删除了私有数据):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'db',
'USER': 'user',
'PASSWORD': 'password',
'HOST': '/cloudsql/project:europe-west4:instance',
'PORT': '5432',
}
}
但是,当我尝试执行任何与数据库相关的操作(例如,登录)时,它会抛出错误
OperationalError at /accounts/login/
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/cloudsql/*project*:europe-west4:*instance*/.s.PGSQL.5432"?
如果我从 HOST 中删除 /cloudsql/
它会给出错误
OperationalError at /accounts/login/
could not translate host name "*project*:europe-west4:*instance*" to address: Name or service not known
当我使用 Cloud SQL 代理 exe 在我的本地计算机上进行测试时,它可以正常工作。但是,当我将它部署到云端时 运行 它没有。
尝试在 host
参数中使用完整的 url
您是否已启用从 Cloud 运行 连接到 Cloud SQL 实例?
尝试运行
gcloud run services update [your cloud run service name] \
--add-cloudsql-instances [project:region:instance]
同时检查您的 Cloud 运行 服务帐户是否具有 Cloud SQL Client
权限。有关如何执行此操作的详细信息,请参阅 this documentation。