一.创建数据库
- 先创建一个 luffy 库
1.可以使用工具 navicate 创建
2.使用命令创建 : create database luffy default charset=utf8;
- 进入到该数据库查看数据库用户
use luffy
# 查看luffy数据库下的用户
select user,host,password from mysql.user;
# mysql5.7版本之后查看用户:password变成了authentication_string
select user,host,authentication_string from mysql.user;
二.创建用户,授予权限
基于 root 用户进行的操作
1.创建luffy用户,授予luffy库的所有权限
- 设置权限、账号、密码、
# 授权账号命令
grant 权限(create, update) on 库.表 to ‘账号‘@‘host‘ identified by ‘密码‘
# all:表示所有权限, luffy:表示只能操作luffy库(可以设置*), *:表示所有, %:代表所有ip都可以连
grant all privileges on luffy.* to ‘luffy‘@‘%‘ identified by ‘Luffy123?‘;
# 版本问题可能本地连接不上,可以单独这只一个本地配置
grant all privileges on luffy.* to ‘luffy‘@‘localhost‘ identified by ‘Luffy123?‘;
# 立即刷新权限, 如果不刷新, 只会在下次登录时生效
flush privileges;
- 查看创建结果
# 賬號 : luffy
# 密码 : Luffy123?
三.在Django配置文件中配置
1.在 setting.py (develop.py)中配置
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘: ‘luffy‘,
‘USER‘: ‘luffy‘,
‘PASSWORD‘: ‘Luffy123?‘,
‘HOST‘: ‘localhost‘,
‘PORT‘: 3306,
‘CHARSET‘: ‘utf8‘,
}
}
# 别忘了加上这两行:使用pymysql来连接数据库
import pymysql
pymysql.install_as_MySQLdb()
>上面这种写法密码容易被别人看到, 安全性不高, 我们可以将密码加入到服务器的环境变量中
2.通过服务器环境变量来存放 / 获取密码
- 首先将密码加入到环境变量中, 设置一个 key, value就是密码
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()
- pymysql 版本问题出现的报错信息 :
> 使用pymysql时, Django版本超过 2.0.7 的时候就会出现这种错误
# 修改前
query = query.decode(errors=‘replace‘)
# 修改后
query = query.encode(errors=‘replace‘)
> 修改后启动成功
- 如果不想使用pymysql, 那么可以直接安装 mysqlclient
pip install mysqlclient
> ps : mysqlclient 比较难装, 运气好一次可以装好, 是在不行不要强求