2012-05-17 2 views
0

장고 응용 프로그램에서 다음과 같은 설정이 있습니다. 내 응용 프로그램을 실행하는 데 manage.py를 사용할 때왜 장고에서 외부 데이터베이스에 연결할 수 없습니까?

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. 
    } 
} 

그러나, 나는 다음 역 추적을 얻을.

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

내 장고 응용 프로그램을 호스팅 전용 서버의 IP 주소입니다. 그러나 settings.py에서 지정한 것처럼 내 데이터베이스는 외부 서버에 있습니다.

왜 장고는 내가 지정한 것처럼 외부 위치가 아닌 전용 서버에서이 데이터베이스를 찾으십니까?

답변

3

Django가 전용 서버에서 데이터베이스를 찾고 있지 않습니다. 반환 된 MySQL 오류 메시지는 75.156.124.202에서 연결한다는 것을 의미합니다. MySQL을 사용하여 특정 호스트의 연결 만 허용 할 수 있기 때문입니다.

이것은 아마도 인증 문제가 있음을 의미합니다. mysql 클라이언트가있는 서버에서 sql.externalhost.com으로 연결하고 데이터베이스에 연결할 수 있는지 확인하십시오.

+0

특히 MySQL에서는'davidfaux @ 75.156.124.202' 사용자를 생성해야합니다. –

+0

감사. 내 사용자/암호 콤보 확신합니다. 그러나 나는 네가 옳다고 생각한다. 외부 데이터베이스에 연결하지 않았습니다. mysql에서 외부 연결을 허용하는 방법을 잘 모르겠습니다. 터미널에서'mysql'을 실행하려고 시도했지만'ERROR 1045 (28000) : 사용자 'david'@ 'localhost'(비밀번호 사용 : NO)에 대한 액세스가 거부되었습니다. '라는 오류가 발생했습니다. – dangerChihuahua007

+1

패스워드를 물어볼 수 있도록 -p 인자를 포함시켜야합니다 :'mysql -h 75.156.124.202 -u davidfaux -p' – Lycha

관련 문제