为什么我不能连接到Django中的外部数据库?

时间:2012-05-17 17:51:30

标签: mysql django

我的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在专用服务器而不是我指定的外部位置寻找这个数据库?

1 个答案:

答案 0 :(得分:3)

Django没有在专用服务器上查找数据库。返回的MySQL错误消息意味着您从75.156.124.202进行连接,因为您只能允许来自特定主机与MySQL的连接。

这意味着可能存在某种身份验证问题,请尝试从服务器与mysql客户端连接到sql.externalhost.com,并确保可以连接到数据库。