一、数据备份
前提条件,以下命令全部是退出mysql环境下执行
1.数据表导出:
备份表:
mysqldump -u root -p 库名 表名 > 备份的表名.sql
2.数据库的导出
实际上是一次导入多张表,只不过表在一个sql文件
备份库:
mysqldump -u root -p 库名 >备份的库名.sql
3.数据的导入
导入库需要先创建输入库,因为实际是导入表,必须重新创入个新的数据库,然后再导入:
mysql -uroot -p 库名<备份的文件.sql
二、权限管理
定义 | 解释 |
---|---|
用户 | 链接的账户 |
权限 | 语序用户操作的范围 |
组 | 权限的集合 |
1.创建用户
基本格式:
create user '用户名'@'ip地址' identified by '密码';
1.1创建用户名为lisi 任何位置都可以登录:
Create user 'lisi'@'%' identified by '123456';
1.2创建用户wangwu 只能本地登录的用户
Create user 'wangwu'@'localhost' identified by '123456';
1.3创建用户wzy只能在ip地址为10.10.107.85的设备上链接数据库
create user 'wzy'@'10.10.107.85' identified by '123456';
补充: Window查看ip地址:Ipconfig
————————————————————————————
2.给用户授权
基本格式:
grant 权限 on 库名.表名 to 用户名@'地址';
2.1给lisi添加 所有库所有表的 查询权限
Grant select on *.* to 'lisi'@'%';
2.2给远程连接的zhaoliu用户添加对demo1数据库下所有表的所有权限
Grant all on demo1.* to 'zhaoliu'@'%';
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLxQzM5MTOzAjM2IDOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
——————————————————————————————————
3.删除用户
基本格式:
drop user '用户名'@'ip地址' ;
——————————————————————————————————
4.修改用户密码
Mysql 有一个默认的mysql库 有一个user表,这个表中存放的就是咱们用户信息!我们的密码字符是authentication_string
4.1修改密码步骤:
①进入数据库软件并且切换到mysql库中
②比如给root账户换个密码为123456,输入:
update user set authentication_string=password('123456') where User='root' and host='localhost';
③重新启动服务(注意是退出数据库后)
net stop mysql
net start mysql
④最后在去连接数据库 此时会发现不输入密码连接会失败,使用密码登录就ok
——————————————
4.2忘记密码怎么办
①.修改配置文件(my.cnf文件) 在mysqld最后一行添加
skip-grant-tables 跳过权限验证
②重新启动服务(注意是退出数据库后)
net stop mysql
net start mysql
③登录数据库,此时不需要输入密码即可登录,执行修改密码操作
④把配置文件修改回来
⑤重启服务 使用新密码登录即可
三、索引
特点:一种高效获取数据的存储结构,类似于子字典的目录
1.为什么要使用索引:
可以提升查询数据的效率 减少io的操作
创建索引时,数据库会额外的创建一张表,来维护索引,会占用磁盘 的资源,一般索引的空间比数据大
索引一般支持的数据结构,b+tree b-tree 哈希
————————————b+tree的基本结构————————————
B+tree的特点:
- 特点:有三层 分别是 根节点,子节点和叶子节点且左右对称*
- 根节点不存储数据,数据存储在叶子节点
- 叶子节点同时保存了写一个数据节点的地址
2.添加索引的优缺点:
- 优点:提升数据的查询速度,减少io操作
- 缺点:维护成本高,会降低其他操作的执行速度
注意:添加索引可以增加查询的速度,但是不是索引越多越好
添加索引一般 是给经常用作where条件的字段添加
我们一般遵循最左原则:
Select * from user where username=’zhansgan’ and age=18;
3.索引的分类
索引分类 | 特点 |
---|---|
普通索引 index | 可以为空 可以重复 当我们使用物理外键时就默认给该字段添加了普通索引 |
唯一索引 unique | 可以为空 不能重复 |
主键索引 primary key | 不能为空且唯一 |
多列索引 index() | 将多个字段绑定到一起添加一个索引 |
4.索引的操作
4.1添加索引:
格式:
alter table 表名 add 索引类型 【索引名】(字段名);
如果不指定索引的名字,那么索引名就以字段名为准
4.2删除主键索引的格式:
删除主键索引要先将主建索引的自增属性删除 然后才能删除主键索引
Alter table 表名 drop primary key;
4.3查看索引:
格式:
show index from 表名;
4.4删除索引:
drop index 索引的名字 on 表名;