zoukankan      html  css  js  c++  java
  • 🍖05 luffy 数据库配置

    一.创建数据库

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

    image-20210503151624552

    二.创建用户,授予权限

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

    image-20210503155243210

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

    image-20210503160834977

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

    image-20210503165232021

    image-20210503165338658

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

    > 修改后启动成功

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

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

  • 相关阅读:
    cogs 2355. [HZOI 2015] 有标号的DAG计数 II
    洛谷 P4705 玩游戏
    LOJ #6436. 「PKUSC2018」神仙的游戏
    CF712D Memory and Scores
    CF 553E Kyoya and Train
    洛谷 P4841 城市规划
    [转载]Java集成PageOffice在线打开编辑word文件
    [转载]Java读取Excel中的单元格数据
    [转载]Java操作Excel文件的两种方案
    [转载]Java导出Excel
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14730597.html
Copyright © 2011-2022 走看看