简介
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