无法使用MySQL后端运行Django

时间:2013-04-11 18:15:08

标签: mysql django

我正在尝试使用MySQL后端设置Django,之前我只使用过sqlite,而且我有一个相当奇怪的错误。 Error was: No module named mysql.base

我正在使用Nginx和uwsgi运行Ubuntu,我安装了python-mysqldb。接下来我开始得到502,所以我希望这些因为我没有更改任何配置文件。

以下是manage.py inspectdb;

之后的堆栈跟踪
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/inspectdb.py", line 8, in <module>
from django.db import connections, DEFAULT_DB_ALIAS
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 45, in load_backend
raise ImproperlyConfigured(error_msg)
django.core.exceptions.ImproperlyConfigured: 'django.db.backends.mysql' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
u'oracle', u'postgresql_psycopg2', u'sqlite3'
Error was: No module named mysql.base

Db设置;

  DATABASES = {
      'default': {
            'ENGINE': 'django.db.backends.mysql',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'wdsdj',                      # Or path to database file if using sqlite3
            # The following settings are not used with sqlite3:
            'USER': 'mark',
            'PASSWORD': 'pass',
            'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
            'PORT': '',                      # Set to empty string for default.
      }
  }

如果我改为sqlite3,那么我从dj中得不到任何问题;

# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
#     * Rearrange models' order
#     * Make sure each model has one field with primary_key=True
# Feel free to rename the models, but don't rename db_table values or field names.
#
# Also note: You'll have to insert the output of 'django-admin.py sqlcustom [appname]'
# into your database.
from __future__ import unicode_literals

from django.db import models

1 个答案:

答案 0 :(得分:1)

检查您的设置,确保发动机正确django.db.backends.mysql

然后确保已安装python-mysqldb ...

sudo apt-get install python-mysqldb

但是,在你的错误堆栈中,它表示'isn't an available database backend'似乎可能是你的Django安装有问题,可能吗?