我正在尝试将我的django项目中的数据库设置从sqlite3更改为mysql。
我在settings.py文件中编辑了数据库对象:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'Identity',
'USER' : 'root',
'PASSWORD': ''
}
}
我运行django-admin dbshell并收到此错误:
文件 “/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/conf/init.py” 第39行,在_setup %(desc,ENVIRONMENT_VARIABLE))django.core.exceptions.ImproperlyConfigured:请求的设置 DATABASES,但未配置设置。您必须定义 环境变量DJANGO_SETTINGS_MODULE或致电 在访问设置之前进行settings.configure()。
我按照此answer to use settings.configure()
的说明进行操作from django.conf import settings
settings.configure()
它返回了此消息:
Traceback(最近一次调用最后一次):文件“”,第1行,in 文件 “/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/conf/init.py” 第63行,在配置中 引发RuntimeError('Settings already configured。')RuntimeError:已配置的设置。
当我运行python3 manage.py shell
时,它给了我这个错误:
文件 “/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/db/backends/mysql/base.py” 第28行,在 raise ImproperlyConfigured(“加载MySQLdb模块时出错:%s”%e)django.core.exceptions.ImproperlyConfigured:加载MySQLdb时出错 module:没有名为'MySQLdb'的模块
我想要做的就是使用mySql而不是sqlite db。
我该怎么做?
答案 0 :(得分:1)
似乎缺少 MySQLdb 包, 你能检查一下这个软件包的安装吗?
apt-get install mysql-server
apt-get install mysql-client
apt-get install libmysqlclient-dev
在您的虚拟环境中,符合安装的mysql客户端
pip install mysqlclient
然后在 settings.py
中执行mysql配置 DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test_db',#database name
'HOST': '127.0.0.1',#
'PORT': '3306',#mysql port
'USER': 'root',#mysql username
'PASSWORD': 'test123',#mysql password
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4',
}
}
}