Django使用mysql数据库
环境声明
- Python 3(3.7.1)
- Django 2(2.1.7)
- 时间:2019年2月16日
- MySQL Server version: 8.0.14 MySQL Community Server - GPL
配置settngs.py
项目文件下的settings.py
搜索DATABASES
按如下模式配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #使用mysql作为数据库
'NAME': 'your database name',
'USER': 'your mysql user name',
'PASSWORD':'your mysql user password',
'HOST':'localhost', #表示允许从本地连接数据库并进行访问
'PORT':'3306', #mysql默认端口号
}
}
配置__init__.py
项目目录下的__init__.py
import pymysql
pymysql.install_as_MySQLdb()
这个的原因大概是因为版本更新的问题,现在的版本需要使用pymysql这个模块,但是原本的代码是用MySQLdb搞得,于是用一句代码将pymysql当做MySQLdb.
至此,已经将mysql配置为了Django项目所使用的数据库了。
可以自己定义models了。然后执行virtualenv搭建的虚拟环境下执行
python manage.py makemigrations
python manage.py migrate
即可生效。
caching_sha2_password
问题
这个问题按理来说不会出现。
MySQL 8 之后默认使用caching_sha2_password
加密验证方式,有些人可能django使用MySQL会遭遇这个问题。不算很好的一种做法是切换为传统的方式。
mysql中root账户登陆后:
# 修改加密方式
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
# 刷新数据库
FLUSH PRIVILEGES;