Django 1.6:MySQL 错误 1049 (42000):未知数据库
根据django官方网站上的教程,django会根据在models.py
中定义的模型来创建数据库的结构。不过,默认使用的数据库引擎是sqlite3
,而且它是可以正常工作的。
现在,当我为django安装了mysql
和Mysql Connector
后,尝试创建数据库时遇到了以下错误:
mysql.connector.errors.ProgrammingError: 1049 (42000): Unknown database 'db.mysql.userdb'
我搜索了一下这个错误,找到了几种解决方案,但它们都提到我需要使用MYSQL Shell
自己创建数据库。但这并不是我想要的!根据django网站的说法,我只需要定义我的模型,django就会自动创建数据库的结构!那我该怎么做呢?
提前谢谢你。
以下是我的settings.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)j&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 Connector/Python
而我使用的是第二种。根据MYSQL网站的说明,它应该以以下方式添加到settings.py
中:
DATABASES = {
'default': {
'NAME': 'user_data',
'ENGINE': 'mysql.connector.django',
'USER': 'mysql_user',
'PASSWORD': 'priv4te',
'OPTIONS': {
'autocommit': True,
},
}
}
2 个回答
0
数据库设置像这样,
在你的环境中使用pip安装mysql-python,
pip install mysql-python
然后在你的mysql中使用下面的命令创建数据库(userdb),
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
4
Django会创建表,但是它不会创建这些表所在的数据库;这个数据库你需要自己去创建。