文章目录
MySQL的binlog
- 二进制日志
- 以事件形式记录了所有的DDL和DML,还包含语句所执行的消耗的时间
- MySQL的binlog是事务安全型的
- 开启binlog会有1%左右的性能损耗
- 一般场景:MySQL主从复制
MySQL主从复制原理图
1、编辑MySQL配置
sudo find / -name my.cnf
sudo vim /etc/my.cnf
添加如下内容
server-id=1
log-bin=mysql-bin
binlog_format=row
binlog-do-db=b1
| 参数 | 说明 |
|---|---|
server-id |
MySQL主从复制时,主从之间每个实例都有独一无二的ID |
log-bin |
生成的日志文件的前缀 |
binlog_format |
binlog格式 |
binlog-do-db |
指定哪些库需要写到binlog;如果不配置,就会是所有库 |
binlog_format参数值 |
参数值说明 | 空间占用 | 数据一致性 |
|---|---|---|---|
statement |
语句级:记录每次一执行写操作的语句 | 小 | 如果用binlog进行数据恢复,执行时间不同可能会导致数据不一致 |
row |
行级:记录每次操作后每行记录的变化 | 大 | 绝对支持 |
mixed |
statement的升级版 |
小 | 极端情况下仍会造成数据不一致 |
2、重启MySQL
sudo systemctl restart mysqld
3、检测配置是否成功
mysql -uroot -p123456
show variables like'%log_bin%';
查看
log_bin相关变量
sudo ls -l /var/lib/mysql | grep mysql-bin
查看binlog文件
4、MySQL数据准备
被监控的MySQL数据
DROP DATABASE IF EXISTS b1;
CREATE DATABASE b1;




最低0.47元/天 解锁文章
1743

被折叠的 条评论
为什么被折叠?



