一、创建数据库
-
新建一个luffy数据库
# 1.管理员连接数据库 mysql -uroot -p密码 # 2.创建数据库 create database luffy default charset=utf8;
可以使用图形化工具Navicat创建,鼠标点点即可
可以使用命令行创建
进入到该数据库查看数据库用户
# 使用luffy数据库use luffy# 查看用户select user,host,password from mysql.user;# 5.7之上的的版本查看命令 (提示: 5.7之后password字段变成了authentication_string字段)select user,host,authentication_string from mysql.user;
二、创建用户,授予权限
注意:基于root用户进行的操作
创建luffy用户,授予luffy库所有权限
# 设置权限账号密码# 授权账号命令:grant 权限(create, update) on 库.表 to '账号'@'host' identified by '密码'# 1.配置任意ip都可以连入数据库的账户 (提示:%表示任意的地址都可以远程链接)grant all privileges on luffyapi.* to 'luffyapi'@'%' identified by 'Luffy123?'; # 2.由于数据库版本的问题,可能本地还连接不上,就给本地用户单独配置 grant all privileges on luffyapi.* to 'luffyapi'@'localhost' identified by 'Luffy123?';# 3.刷新一下权限。 (提示: 如果不刷新,只会在下次登录时生效。)flush privileges;# 只能操作luffy数据库的账户账号:luffyapi 密码:Luffy123?
三、在Django项目中配置
1.在 setting.py (dev.py)中配置
# 1.安装配置数据库mysqlDATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'luffy', 'USER': 'luffy', 'PASSWORD': 'Luffy123?', 'HOST': 'localhost', 'PORT': 3306, 'CHARSET': 'utf8', }}# 2.安装pymysql,或者是mysqlclient -运气好:一把装好就用mysqlclient -pip3 install mysqlclient -或者使用pymysql(django版本超过2.0.7,需要改源码) -使用pymysql不要忘了在配置文件中加入 import pymysql pymysql.install_as_MySQLdb()
问题:如果项目上线后代码泄露,数据库密码很容易泄露,安全性不高,所以,一般我们PASSWORD密码不因该存放到pro.py或者dev.py配置文件中。 因此存放到服务器中, 通过环境变量的获取存放。
2.通过服务器环境变量来存放/获取密码
password = os.getenv('mysql_password','Luffy12333') # 或者下面语句# password = os.environ.get('MYSQL_PASSWORD','Luffy12333'))DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'luffy', 'USER': 'luffy', 'PASSWORD': password, 'HOST': 'localhost', 'PORT': 3306 }}import pymysql pymysql.install_as_MySQLdb()
Windows配置完环境变量需要重启电脑,否则启动项目报错
Linux重新加载配置文件即可
# 方式一:source /etc/profile# 方式二:. /etc/profile
使用pymysql 版本问题出现的报错信息 :
使用pymysql时, Django版本超过 2.0.7 的时候就会出现这种错误
# 修改前query = query.decode(errors='replace')# 修改后query = query.encode(errors='replace')
修改后启动成功
PS: 如果不想使用pymysql,可以直接安装mysqlclient
pip install mysqlclient# mysqlclient 比较难装, 运气好一次可以装好, 是在不行不要强求