05 luffy 数据库配置

487次阅读
没有评论

共计 1563 个字符,预计需要花费 4 分钟才能阅读完成。

一. 创建数据库

  • 先创建一个 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;

05 luffy 数据库配置

二. 创建用户, 授予权限

基于 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;
  • 查看创建结果

05 luffy 数据库配置

# 賬號 : 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 就是密码

05 luffy 数据库配置

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 的时候就会出现这种错误

05 luffy 数据库配置

05 luffy 数据库配置

# 修改前
query = query.decode(errors='replace')

# 修改后
query = query.encode(errors='replace')

修改后启动成功

  • 如果不想使用 pymysql, 那么可以直接安装 mysqlclient
pip install mysqlclient

ps : mysqlclient 比较难装, 运气好一次可以装好, 是在不行不要强求

正文完
 
shawn
版权声明:本站原创文章,由 shawn 2023-06-16发表,共计1563字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)