## 二進制日志
+ 記錄數據庫變化
## 啟動和設置二進制日志
> 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操作
- 連接
- 創建數據庫
- 插入數據
- 插入多條數據
- 預處理語句
- 查詢數據
- 預處理語句
- 實戰應用
- 分表