简介
mysql的二进制日志binlog
可以说是mysql最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select、show等),以事件形式记录,还包含语句所执行的消耗时间,mysql的二进制日志是事务安全型的。binlog的主要母的是复制和恢复
使用场景
- MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave数据一致的目的
- 数据恢复:通过使用
mysqlbinlog
工具来恢复数据
实现
- 连接数据库
mysql -uroot -p123456

- 查看binlog日志状态
binlog日志开启状态为ON

- 开启binlog
- mysql配置文件增加这一行
log-bin=mysql-bin
重启mysql

可以看到 log_bin 已经开启, 同时可以看到存储的位置在 E:/phpstudy_pro/Extensions/MySQL5.7.26/data/
目录 , 前缀是 mysql-bin
- 查看binlog日志文件
show master logs;

- 创建binlogtest表
| CREATE TABLE IF NOT EXISTS `binlogtest`( |
| `id` INT UNSIGNED AUTO_INCREMENT, |
| `title` VARCHAR(100) NOT NULL, |
| PRIMARY KEY ( `id` ) |
| )ENGINE=InnoDB DEFAULT CHARSET=utf8; |
- 插入数据
| INSERT INTO `binlogtest` ( title ) VALUES ( 1 ); |
| INSERT INTO `binlogtest` ( title ) VALUES ( 2 ); |
| INSERT INTO `binlogtest` ( title ) VALUES ( 3 ); |
- 查看数据
| #查看数据库 |
| show databases; |
| #使用binlog数据库 |
| use binlog; |
| #查看数据表 |
| show tables; |
| #查看数据 |
| select * from binlogtest; |

- 生成新的binlog文件
flush logs;


- 删除binlog数据库
- 恢复数据
mysqlbinlog --no-defaults E:\phpstudy_pro\Extensions\MySQL5.7.26\data\mysql-bin.000001 | mysql -uroot -p
