我有一个Django应用程序,该应用程序连接到远程MySQL数据库(都在AWS上,只是在不同的服务器上)。连接工作正常,应用程序与数据库正确交互(从数据库中获取数据并向其中添加数据)。
但是,当我尝试执行manage.py migrate
时,出现以下错误:
django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
manage.py是否需要做一些特定的事情才能与远程数据库进行交互,而不是尝试访问本地数据库(不存在)?
答案 0 :(得分:2)
您的托管服务器上的设置很可能与本地计算机上的设置不同。在托管环境上运行manage.py
时,需要指定要使用的设置文件:
/path/to/virtualenv/bin/python manage.py migrate --settings=myapp.settings.production
或您的生产设置所在的位置。如果您省略--settings
,则说明运行的是开发设置,例如在本地计算机上。
或者,您需要在运行$DJANGO_SETTINGS_MODULE
之前设置manage.py migrate
环境变量