我的Django应用程序中有以下设置。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'mydatabasename', # Or path to database file if using sqlite3.
'USER': 'davidfaux', # Not used with sqlite3.
'PASSWORD': 'mySecretPassword', # Not used with sqlite3.
'HOST': 'sql.externalhost.com', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
但是,当我使用manage.py
来运行我的应用程序时,我得到以下回溯。
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'davidfaux'@'75.156.124.202' (using password: YES)")
75.156.124.202
是托管我的Django应用程序的专用服务器的IP地址。但是,我的数据库位于外部服务器上,就像我在settings.py中指定的那样。
为什么Django在专用服务器而不是我指定的外部位置寻找这个数据库?
答案 0 :(得分:3)
Django没有在专用服务器上查找数据库。返回的MySQL错误消息意味着您从75.156.124.202
进行连接,因为您只能允许来自特定主机与MySQL的连接。
这意味着可能存在某种身份验证问题,请尝试从服务器与mysql客户端连接到sql.externalhost.com
,并确保可以连接到数据库。