数据备份
1.先退出mysql环境
2.数据的导出
备份表:
格式:mysqldump -uroot -p 库名 表名>表名.sql
备份库:
格式:mysqldump -uroot -p 库名>备份文件名.sql
3.数据的导入
数据的导入
mysql -uroot -p 库名<备份文件地址.sql
将导出的存入新的数据库的表中
导出库+导入库
(各位未备份就删了库,跑路吧。)
权限管理
用户:连接的用户
权限:语序用户操作的范围
组:权限的集合
修改密码
MySQL有一个默认的mysql库,有一个user表,这个表中存放的就是用户信息
切换到mysql库中
执行update set user authentication_string=password('123456') where User='root' and host='localhost';
重新启动服务(忘记了看上一篇)
然后再去连接数据库,此时会返现不输入密码连接会失败,使用密码登陆就ok了
忘记密码
1.修改配置文件
在mysqld最后一行加上
skip-grant-tables
跳过权限认证
2.重启服务
不用输入密码可以直接登陆到数据库
执行修改密码操作
3.把配置文件修改回来
4.重启服务,使用新密码登陆
创建用户
格式:create user'用户名'@'ip 地址'identified by'密码'
创建用户为lisi(可同名),登陆ip任意:
create user 'lisi'@'%'identifined by'123456'
给用户授权允许远程连接
格式:grant 权限 on 库名.表名 to 用户名@'地址'
给list添加权限
给李四添加所有库所有表的查询权限
grant select on *.* to 'list'@'%'
给远程连接的zhaoliu用户添加对demo1数据库下所有表的所有权限
grant all on demo1.*to'zhaoliu'@'%'
删除用户:
格式:drop user ‘用户名’@‘ip地址’
索引
一种高效获取数据的存储结构,类似于子字典的目录
(1:0f000001)
为什么要使用索引:
可以提升查询数据的效率 减少io的操作
创建索引时,数据库会额外的创建一张表,来维护索引,会占用磁盘 的资源,一般索引的空间比数据大
索引一般支持的数据结构,b+tree b-tree 哈希
b+tree的基本结构
B+tree的特点:
有三层 分别是 根节点,子节点和叶子节点
对称
根节点不存储数据,数据存储在叶子节点
叶子节点同时保存了写一个数据节点的地址
优缺点:
提升数据的查询速度,减少io操作
缺点维护成本高,会降低其他操作的执行速度
添加索引可以增加查询的速度,但是不是索引越多越好
添加索引一般 是给经常用作where条件的字段添加
最左原则:Select * from user where username=’zhansgan’ and age=18;
索引分类:
普通索引:index 可以为空 可以重复 当我们使用物理外键时就默认给该字段添加了普通索引
唯一索引:unique 可以为空 不能重复
主键索引:primary key 不能为空且唯一
多列索引:将多个字段绑定到一起添加一个索引 index()
添加索引:
格式:alter table 表名 add 索引类型 【索引名】(字段名);
如果不指定索引的名字,那么索引名就以字段名为准
删除主键索引的格式:
删除主键索引要先将主建索引的自增属性删除 然后才能删除主键索引
Alter table 表名 drop primary key;
查看索引:
格式:show index from 表名;
删除索引:
Drop index 索引的名字 on 表名;