我正在尝试按照此处的说明设置 django 以连接到 google cloud sql:使用云 SQL 代理连接 MySQL 客户端。在我启动代理后:
./cloud_sql_proxy -dir=/cloudsql -instances=my-instance -credential_file=/app/keyfile.json > /logs/proxy.txt &
Django 无法连接到数据库,并在您尝试加载页面时给出此错误:
(2002, "无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器 (2)")
我是 unix 套接字的新手,所以我可能解释不正确,但在我看来,django 正在尝试连接到/var/run/mysqld/mysqld.sock 的套接字。
我在 Django 中的数据库配置是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOSTS': '/cloudsql/my-instance-description',
'NAME': 'main',
'USER': '****',
'PASSWORD': '****',
}
}
我的解释是否正确? 如果是这样,我需要更改什么才能让 django 尝试连接到/cloudsql/my-instance-description 而不是默认的套接字?
我认为问题是错字。使用 HOST
而不是 HOSTS
。