这是我第一次在Google云上进行部署,并且正在从GitHub克隆存储库。
通过创建目录,克隆GitHub存储库,创建实例和MySQL数据库,一切似乎都可以。安装要求也成功。我创建了一个云SQL第二代数据库,并为其设置了用户和密码。我什至启用了云SQL API。
当我使用“ sudo python3 manage.py runserver 0.0.0.0:80
”运行服务器时,出现以下错误消息:
django.db.utils.OperationalError: (2002, 'Can\'t connect to local MySQL server through socket \'/cloudsql/my_project:us-central1:my_instance\' (2 "No such file or directory")')
我尝试使用sudo python3 manage.py runserver
运行服务器,但仍然出现相同的错误。
我已经花了几个小时尝试解决此错误,但无济于事。
这是一个Django应用,setings.py DATABASES如下所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '/cloudsql/my_instance:us-central1:my_project_name',
'USER': 'root',
'PASSWORD': '**password**',
'NAME': 'db_name',
}
}
我尝试了没有密码的设置,并且遇到了相同的错误。
我尝试了所有我能想到的,但没有成功。 拜托,我需要帮助。我被困在这一个。
答案 0 :(得分:0)
您要在哪里运行该应用程序? /cloudsql
套接字仅自动提供给App Engine runtimes-如果要在本地运行,则需要使用Cloud SQL Proxy to create a socket locally。
答案 1 :(得分:0)
我遇到了同样的问题。
我使用 Cloud SQL 代理和 'HOST':'127.0.0.1' 并且它工作正常:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'USER': 'root',
'PASSWORD': '**password**',
'NAME': 'db_name',
}
}
这里是手册:
https://cloud.google.com/python/django/appengine#mysql-client https://cloud.google.com/sql/docs/mysql/quickstart-proxy-test