2012-02-22 15 views
0

Python Djangoを使用してサーバAからサーバ "apple"にmysqlデータベースにアクセスしようとしました。 runco​​nfig.pyの内容は_mysql_exceptions.OperationalError 1044 Djangoを使用しているユーザのアクセスが拒否されました

# Django setting module 
django_settings_module = 'settings' 

不思議なことに、私はにログインすることができる午前です

_mysql_exceptions.OperationalError: (1044, "Access denied for user 'username'@'ice.cse.connell.edu' to database 'mydatabase'") 

:関連書類は

import settings 
os.environ['DJANGO_SETTINGS_MODULE'] = runconfig.django_settings_module 
from django.db import connection 

class Writer(object): 
    def __init__(self): 

    def submission(self,pars): 
    d = connection.cursor() 

と以下のように、これは私にエラーを与えて実行されていますサーバー "ice"からサーバー "apple" remoteへのmysql:

$ mysql -u username -ppassword -h apple 

私はこの問題をSOから掘り下げてきましたが、まだ答えは見つかりません。この質問は私を夢中にさせてくれました!

以下は、私のsettings.pyの最初の数行です。それは長すぎるので、私はそれのすべてを投稿しませんでした。しかし、誰かがもっと必要な場合は、私はすべてのコンテンツを貼り付けることができます。

# Django settings for mydatabase project. 

DEBUG = False 
TEMPLATE_DEBUG = DEBUG 

ADMINS = (
    # ('Your Name', '[email protected]'), 
) 

MANAGERS = ADMINS 

DATABASE_ENGINE = 'mysql'   # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
DATABASE_NAME = 'mydatabase' # Or path to database file if using sqlite3. 
DATABASE_USER = 'username'    # Not used with sqlite3. 
DATABASE_PASSWORD = 'password'   # Not used with sqlite3. 
DATABASE_HOST = 'apple'   # Set to empty string for localhost. Not used with sqlite3. 
DATABASE_PORT = ''    # Set to empty string for default. Not used with sqlite3. 

------------------------------------------- ----------------------------------------------

追加POST

シドの提案に基づいてsettings.pyを修正した後:

#DATABASE_ENGINE = 'mysql'   
#DATABASE_NAME = 'mydatabase' 
#DATABASE_USER = 'username'    
#DATABASE_PASSWORD = 'password'   
#DATABASE_HOST = 'apple' 
#DATABASE_PORT = ''  

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'mydatabase', 
    'USER': 'username', 
    'PASSWORD': 'password', 
    'HOST': 'apple', 
    'PORT': '', 
    } 
} 

コマンドライン入力とエラーメッセージがある

>>> import runconfig 
>>> 
>>> import os 
>>> import sys 
>>> import settings 
>>> #from django.conf import settings 
... 
>>> os.environ['DJANGO_SETTINGS_MODULE'] = runconfig.django_settings_module 
>>> 
>>> from django.db import connection 
>>> c = connection.cursor() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.6/site-packages/django/db/backends/dummy/base.py", line 15, in complain 
    raise ImproperlyConfigured, "You haven't set the DATABASE_ENGINE setting yet." 
django.core.exceptions.ImproperlyConfigured: You haven't set the DATABASE_ENGINE setting yet. 

答えて

0

データベース名を確認してください。大文字と小文字が区別されることがあります。

http://groups.google.com/group/django-users/browse_thread/thread/8717661c908b836e

次の形式を使用してみてください:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'mydatabase', 
     'USER': 'username',  
     'PASSWORD': 'password', 
     'HOST': 'apple', 
     'PORT': '',  
    } 
} 

はまた、あなたが使用しているユーザ名は、このデータベースに権限を持っているのでしょうか?

+0

settings.pyを確認したところ、データベース名が正しいです。それは私の場合には常に低いケースです。 – fanchyna

+0

@fanchynaの心はあなたのsettings.pyデータベースの設定を投稿しますか?どんなドライバーを使っていますか? pyodbc? – Sid

+0

思い出してくれてありがとう。私はオリジナルの投稿を編集し、settings.pyの最初の数行を追加しました。これは長すぎるためです。すべてのコンテンツが必要な場合は、私に知らせてください。ちなみに、ROOT_URLCONFの値は重要ですか?私は、リモートデータベースに接続しようとしているだけで、サーバーのデータを入力するのではなく、何か質問があれば歓迎します。 – fanchyna

関連する問題