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