Django 1.6: ОШИБКА MySQL 1049 (42000): неизвестная база данных

#python #database #django #django-models #mysql-connector

#python #База данных #django #django-модели #mysql-connector

Вопрос:

Согласно руководству django на его официальном сайте, django создает схему базы данных в соответствии с моделью, определенной в models.py . Но механизм по умолчанию для базы sqlite3 данных. И это работает.

теперь, когда я установил mysql and Mysql Connector для django и попытался создать базу данных, я столкнулся со следующей ошибкой:

  mysql.connector.errors.ProgrammingError: 1049 (42000): Unknown database 'db.mysql.userdb'
  

Я искал ошибку и нашел несколько решений этой проблемы, но все они упоминали, что я должен сам создать базу данных, используя MYSQL Shell . Но это не то, чего я хочу! Согласно веб-сайту django, мне нужно просто определить свою модель, и django создает схему базы данных! Как я могу это сделать?

Заранее спасибо.

Ниже приведен мой sttings.py файл:

 # -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os

BASE_DIR = os.path.dirname(os.path.dirname(__file__))      

SECRET_KEY = '94sf3cp(#a^)9!^zrr^zr3dfdk0nz$*4=m#v19*v)jamp;q^o$#ym'

DEBUG = True

TEMPLATE_DEBUG = True

ALLOWED_HOSTS = []

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'website_user',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'Final_DBMI.urls'

WSGI_APPLICATION = 'Final_DBMI.wsgi.application'


DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': 'db.mysql.userdb',
        'USER': 'hadi',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True       

STATIC_URL = '/statics/'
  

Обновить
Я использую этот документ, и в соответствии с этим существует два способа подключения к mysql:

  • MySQLdb
  • Соединитель MySQL / Python

и я использую второй. Согласно веб-сайту MYSQL, его следует добавить settings.py следующим образом:

 DATABASES = {
    'default': {
        'NAME': 'user_data',
        'ENGINE': 'mysql.connector.django',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te',
        'OPTIONS': {
          'autocommit': True,
        },
    }
}
  

Ответ №1:

Django создает таблицы. Он не создает базу данных, в которой находятся таблицы; вы должны это сделать.

Ответ №2:

настройки БД, подобные этому,

установите mysql-python в вашей среде с помощью pip

 pip install mysql-python
  

создайте базу данных (userdb) в вашем mysql, используя приведенную ниже команду,

 create database userdb;
  

тогда ваш settings.py файл следуйте этим настройкам,

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

Вот ссылка https://docs.djangoproject.com/en/dev/ref/settings/#databases

Комментарии:

1. Это дает мне следующее: django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb , я не использую MySQLdb . Я использую этот . и в нем говорится, чтобы добавить его таким образом