Mysql基本命令3 授权,备份,数据库设计

Posted 偶像java练习生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql基本命令3 授权,备份,数据库设计相关的知识,希望对你有一定的参考价值。

权限管理和备份

SQL yog 可视化管理

各位小伙伴大家好,上次mysql 安装教程如果还有问题的可以私信我,有几个小伙伴有问题已经帮忙解决了!
** 权限管理和备份 **

  1. 点击这个人头
  2. 添加用户
  3. 主机选什么登录的时候就填什么
  4. 点击创建可以看到对应权限

SQL 命令操作授权
用户表:mysql.user

本质:新增用户本质上就是对这张表进行增删改查,

基本命令授权

-- 创建用户 CREATE USER 用户名 IDENTIFIED BY '密码'
CREATE USER  kuangshen IDENTIFIED BY '123456'

-- 修改当前用户密码
SET PASSWORD =PASSWORD('111111')

-- 修改指定用户密码
SET PASSWORD FOR kuangshen =PASSWORD('111111')

-- 重命名  RENAME USER 原来的名字 TO 新的名字
RENAME USER kuangshen TO kuangshen2

-- 用户授权 ALL PRIVILEGES 全部的权限,库.表
-- 除了跟别人授权其他都能干
GRANT ALL PRIVILEGES ON *.* TO kuangshen2

-- 查看指定用户的权限
SHOW GRANTS FOR kuangshen2

-- 查看root 权限
SHOW GRANTS FOR root@localhost

GRANT ALL PRIVILEGES ON *.* TO 'kuangshen2'@'%'

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION

-- 删除权限 REVOKE 哪些权限,在那个库撤销,给谁撤销
REVOKE  ALL PRIVILEGES  ON *.* FROM kuangshen2

-- 删除用户
DROP USER kuangshen

MYSQL 备份

为什么要备份:

  • 保证重要的数据不丢失
  • 数据转移

Mysql 数据库备份的方式

  • 直接拷贝物理文件如图:

  • 在Sqlyog 这种可视化工具中手动导出,右键,选择备份或导出

    默认选择红色框框里面的就可以:
    导出到桌面生成1.sql 文件,如果要导入,直接拖到SQLlog 软件的查询框即可

  • 使用命令行导出 mysqldump 命令行使用

mysqldump -hlocalhost -uroot -p123456 platform-shop sys_log > D:/centois/a.sql
mysqldump -h 主机 -u 用户名 -p 密码 数据库 表名 > 物理磁盘位置/文件名
导出一张表到 D:\\centois,如果出现了这个图,则表示导出成功

导出多张表
mysqldump -h 主机 -u 用户名 -p 密码 数据库 表1 表2 表3 > 物理磁盘位置/文件名
mysqldump -hlocalhost -uroot -p123456 platform-shop sys_log sys_role > D:/centois/a.sql

导出数据库
#mysqldump -h 主机 -u 用户名 -p 密码 数据库 > 物理磁盘位置/文件名
mysqldump -hlocalhost -uroot -p123456 platform-shop > D:/centois/c.sql

导入
登录的情况下,切换到指定的数据库
mysql -u用户名 -p密码
source 备份文件

假设你要备份数据库,防止数据丢失
把数据库给朋友!sql 文件即可!

数据库设计

当数据库比较负责的时候,我们需要设计了
糟糕的数据库设计

  • 数据冗余,浪费空间
  • 数据插入比较麻烦,异常(屏蔽使用物理外键)(物理外键)
  • 程序的性能差

良好的数据库设计

  • 节省内存空间
  • 保证数据的完整性
  • 方便我们开发系统

软件开发中,关于设计库的设计

  • 分析需求:分析业务和需要处理的数据库的需求
  • 概要设计:设计关系图 E-R 图

三大范式

为什么需要数据规范化

  • 信息重复

  • 更新异常

  • 插入异常
    正常无法显示

  • 删除异常
    丢失有效的信息

    三大范式

第一范式(1NF)
原子性:保证每一列不可再分

家庭信息,学校信息都是可分的,
拆成这样:

第二范式(2NF)
前提:满足第一范式
每张表只描述一件事情,

产品金额跟订单时间跟产品没有任何关系

第三范式

在满足第一范式,第二范式的前提下,
第三范式需要确保数据中的每一列数据都和主键直接相关,而不能间接相关,比如途中的学生和老师在同一张表里面,不知道学号是主键,还是老师为主键!

规范数据库的设计

规范性和性能的问题
阿里公约:关联查询的表不得超过三张表

  • 考虑商业化的需求和目标,(成本,用户体验) 数据库的性能更加重要
  • 在规范性能的问题的时候,需要适当的考虑一下规范性
  • 故意给某些表增加一些冗余字段(从多表查询中变为单表查询)
  • 故意增加一些计算列(从大数据量降低为小数据量的查询:索引)

以上是关于Mysql基本命令3 授权,备份,数据库设计的主要内容,如果未能解决你的问题,请参考以下文章

mysql 增查删改,备份恢复,授权等基础常用命令

MySql用户管理:添加用户授权删除用户

mysql数据库---授权语句以及备份

替换整个数据库 mysql 命令或方法

mysql授权

Navicat (连接mysql数据库)的基本使用