Mysql基本命令3 授权,备份,数据库设计
Posted 偶像java练习生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql基本命令3 授权,备份,数据库设计相关的知识,希望对你有一定的参考价值。
权限管理和备份
SQL yog 可视化管理
各位小伙伴大家好,上次mysql 安装教程如果还有问题的可以私信我,有几个小伙伴有问题已经帮忙解决了!
** 权限管理和备份 **
- 点击这个人头
- 添加用户
- 主机选什么登录的时候就填什么
- 点击创建可以看到对应权限
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 授权,备份,数据库设计的主要内容,如果未能解决你的问题,请参考以下文章