2012-04-04 8 views
3

私はmysql-pythonを使用しています。私は'ENGINE': 'mysql' with django.db.backends.mysql`を交換する場合、私はこのエラーが表示さDjango mysqlエラー

Traceback (most recent call last): 
    File "manage.py", line 15, in <module> 
    execute_manager(settings) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 459, in execute_manager 
    utility.execute() 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 69, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/south/management/commands/__init__.py", line 10, in <module> 
    import django.template.loaders.app_directories 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/template/loaders/app_directories.py", line 21, in <module> 
    mod = import_module(app) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 3, in <module> 
    from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/contrib/admin/helpers.py", line 2, in <module> 
    from django.contrib.admin.util import (flatten_fieldsets, lookup_field, 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/contrib/admin/util.py", line 1, in <module> 
    from django.db import models 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module> 
    backend = load_backend(connection.settings_dict['ENGINE']) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/db/utils.py", line 92, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/db/utils.py", line 51, in load_backend 
    raise ImproperlyConfigured(error_msg) 
django.core.exceptions.ImproperlyConfigured: 'mysql' isn't an available database backend. 
Try using django.db.backends.mysql instead. 
Error was: No module named mysql.base 

Traceback (most recent call last): 
    File "manage.py", line 15, in <module> 
    execute_manager(settings) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 459, in execute_manager 
    utility.execute() 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/base.py", line 231, in execute 
    self.validate() 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/base.py", line 266, in validate 
    num_errors = get_validation_errors(s, app) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/core/management/validation.py", line 103, in get_validation_errors 
    connection.validation.validate_field(e, opts, f) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/db/backends/mysql/validation.py", line 14, in validate_field 
    db_version = self.connection.get_server_version() 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 411, in get_server_version 
    self.cursor() 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/db/backends/__init__.py", line 306, in cursor 
    cursor = self.make_debug_cursor(self._cursor()) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 387, in _cursor 
    self.connection = Database.connect(**kwargs) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect 
    return Connection(*args, **kwargs) 
    File "/home/myname/.django-projects/userena/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 187, in __init__ 
    super(Connection, self).__init__(*args, **kwargs2) 
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'myname'@'localhost' (using password: NO)") 
を私が実行したときに、私はこのエラーが表示 syncdbここに私のsettings.py

import os, sys 

abspath = lambda *p: os.path.abspath(os.path.join(*p)) 

PROJECT_ROOT = abspath(os.path.dirname(__file__)) 
USERENA_MODULE_PATH = abspath(PROJECT_ROOT, '..') 
sys.path.insert(0, USERENA_MODULE_PATH) 

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 

ADMINS = (
    ('me', '[email protected]'), 
) 

MANAGERS = ADMINS 

DATABASES = { 
    'default': { 
     'ENGINE': 'mysql', 
     'NAME': 'test', 
     'DATABASE_USER': 'root', 
     'DATABASE_PASSWORD': 'pass', 
    } 
} 

if DEBUG: 
    # Use the Python SMTP debugging server. You can run it with: 
    # ``python -m smtpd -n -c DebuggingServer localhost:1025``. 
    EMAIL_USE_TLS = True 
    EMAIL_HOST = 'smtp.gmail.com' 
    EMAIL_HOST_USER = '[email protected]' 
    EMAIL_HOST_PASSWORD = '12345' 
    EMAIL_PORT = 587 


TIME_ZONE = 'America/Chicago' 
LANGUAGE_CODE = 'en-us' 

ugettext = lambda s: s 
LANGUAGES = (
    ('en', ugettext('English')), 
    ('nl', ugettext('Dutch')), 
    ('fr', ugettext('French')), 
    ('pl', ugettext('Polish')), 
    ('pt', ugettext('Portugese')), 
    ('es', ugettext('Spanish')), 
) 

SITE_ID = 1 

USE_I18N = True 
USE_L10N = True 

MEDIA_ROOT = abspath(PROJECT_ROOT, 'media') 
DOCUMENT_ROOT = abspath(PROJECT_ROOT, 'docs') 

MEDIA_URL = '/media/' 

ADMIN_MEDIA_PREFIX = '/media/admin/' 

SECRET_KEY = 'sx405#tc)[email protected]#^jh5l7$k#cl3ekg)jtbo2ds(n([email protected]@' 

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
) 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'userena.middleware.UserenaLocaleMiddleware', 
) 
TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth", 
    "django.core.context_processors.debug", 
    "django.core.context_processors.i18n", 
    "django.core.context_processors.media", 
    "django.contrib.messages.context_processors.messages", 
    "django.core.context_processors.request", 
) 

AUTHENTICATION_BACKENDS = (
    'userena.backends.UserenaAuthenticationBackend', 
    'guardian.backends.ObjectPermissionBackend', 
    'django.contrib.auth.backends.ModelBackend', 
) 

ROOT_URLCONF = 'demo_project.urls' 

TEMPLATE_DIRS = (
    abspath(PROJECT_ROOT, 'templates') 
) 

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'easy_thumbnails', 
    'guardian', 
    'south', 
    'userena', 
    'userena.contrib.umessages', 
    'demo_project.profiles', 
) 

# Userena settings 
LOGIN_REDIRECT_URL = '/accounts/%(username)s/' 
LOGIN_URL = '/accounts/signin/' 
LOGOUT_URL = '/accounts/signout/' 
AUTH_PROFILE_MODULE = 'profiles.Profile' 

USERENA_DISABLE_PROFILE_LIST = True 
USERENA_MUGSHOT_SIZE = 140 

# Test settings 
TEST_RUNNER = 'django.test.simple.DjangoTestSuiteRunner' 
SOUTH_TESTS_MIGRATE = False 

# Guardian 
ANONYMOUS_USER_ID = -1 

です

答えて

10

'ENGINE'を 'django.db.backends.mysql'に置き換えた 'mysql'が正しいです。

DATABASES = { 
    'default': { 
     'ENGINE': 'mysql', 
     'NAME': 'test', 
     'DATABASE_USER': 'root', 
     'DATABASE_PASSWORD': 'pass', 
    } 
} 

へ:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'test', 
     'USER': 'root', 
     'PASSWORD': 'pass', 
    } 
} 

さて、あなたはから変更する必要があります