## 二进制日志
+ 记录数据库变化
## 启动和设置二进制日志
> my.ini中[MySQLd]组下面设置
```ini
log-bin [= path / [filename]]
expire_logs_days = 10
max_binlog_size = 100M
```
|参数|说明|
|-|-|
|log-bin|定义开启二进制,path表明日志文件所在的路径,filename指定了日志文件的名称|
|expire_logs_days|定义了MySQL的过期时间|
|max_binlog_size|定义了单个文件大小限制,默认1G,不得大于1G,不得小于4096B|
## 查看二进制日志
### SQL命令查询日志设置
```sql
show variables;
```
### SQL命令查看文件个数及文件名
```sql
show binary logs;
```
### SQL命令查看文件详细内容
```sql
mysqlbinlog path/filename;
```
## 删除二进制日志
### 删除所有二进制文件
```sql
reset master;
```
### 删除指定二进制文件
```sql
purge {master|binary} logs to '文件名';
purge {master|binary} logs before '日期';
```
+ 第一种按文件名删除
+ 第二种按日期删除,格式20190702
## 使用二进制恢复数据库
```sql
mysqlbinlog [参数] filename |mysql -u用户名 -p密码;
```
|参数|说明|
|-|-|
|--start-date|开始时间|
|--stop-date|结束时间|
|--start-position|开始位置|
|--stop-position|结束位置|
### 恢复到2019年7月2日12点前
```sql
mysqllbinlog --stop-date="2019-07-02 12:00:00" |mysql -uroot -p123456;
```
## 暂时停止二进制功能
```sql
set sql_log_bin = {0|1}
```
+ 1是开启功能
+ 0是关闭功能
- 简介
- 数据库
- 数据表
- 创建数据表
- 查看数据表结构
- 修改数据表
- 删除数据表
- 查询数据
- 表单查询
- 聚合查询
- 链接查询
- 子查询
- 联合查询
- 正则查询
- 数据管理
- 数据类型
- 添加数据
- 更新数据
- 删除数据
- 索引
- 索引分类
- 设计原则
- 添加索引
- 查看索引
- 删除索引
- 视图
- 视图操作
- 视图应用
- 事务
- 触发器
- 存储过程和函数
- 变量
- 异常处理
- 光标
- 流程控制
- 存储过程
- 自定义函数
- 内置函数
- 数学
- 字符串
- 日期和时间
- 条件判断
- 系统信息
- 加/解密
- 其他
- 用户管理
- 登录和退出
- 新建用户
- 删除用户
- 修改用户
- 找回ROOT密码
- 权限管理
- 备份恢复
- 备份数据
- 恢复数据
- 日志
- 二进制日志
- 错误日志
- 查询日志
- 慢查询日志
- 性能优化
- 优化查询语句
- 优化数据库结构
- 优化服务器
- 主从复制
- WIN系统主从复制
- Linux单机主从复制
- Linux联机主从复制
- 参数配置
- 日常管理和维护
- 切换主从服务器
- PHP操作
- 连接
- 创建数据库
- 插入数据
- 插入多条数据
- 预处理语句
- 查询数据
- 预处理语句
- 实战应用
- 分表