随笔 - 51,  文章 - 0,  评论 - 3,  阅读 - 13万

一、MySQL Binlog 简介

MySQL 的二进制日志 binlog 可以说是 MySQL 最重要的日志,它记录了所有的 DDL 和 DML 语句(除了数据查询语句select、show等),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。binlog 的主要目的是复制和恢复。

二、Binlog日志的两个最重要的使用场景:

1、MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave数据一致的目的
2、数据恢复:通过使用 mysqlbinlog工具来使恢复数据

三、开启Binlog日志:

通过配置 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件的 log-bin 选项:

##配置binlog日志路径以及日志文件名前缀、生成的日志格式为:bin-log.000001
log-bin=/var/lib/mysql/bin-log
##注意5.7以及更高版本需要配置本项、自定义,保证唯一性
server-id=1
##binlog格式,有3种statement,row,mixed,区别的话,请自行搜索
binlog-format=mixed
##表示每1次执行写入就与硬盘同步,会影响性能,为0时表示,事务提交时mysql不做刷盘操作,由系统决定
sync-binlog=1

 

四、查看Binlog日志状态

mysql命令行:

show variables like '%log_bin%';

binlog日志开启状态为ON

 

 

 

五、查看Binlog文件内容

mysql命令行:
show binlog events in 'bin-log-1.000001'; 

 

 

 

 

六、通过Binlog恢复数据

复制代码
linux命令行:
/usr/bin/mysqlbinlog --database=hello /var/lib/mysql/bin-log-1.000001 | /usr/bin/mysql -uroot -p123456zy -v hello

/usr/bin/mysqlbinlog 为binlog命令
--database=hello 指定数据库为hello的日志
/var/lib/mysql/bin-log-1.000001 为binlog日志

| 为管道符

/usr/bin/mysql -uroot -p123456zy -v hello 连接mysql、并指定需要恢复的数据库 -v 为显示详细信息
复制代码

 

七、通过指定位置恢复数据

linux命令行:
/usr/bin/mysqlbinlog --start-position=573 --stop-position=718 --database=hello /var/lib/mysql/bin-log-1.000001 | /usr/bin/mysql -uroot -p123456zy -v hello

--start-position=573 开始位置
--stop-position=718  结束位置

查看位置信息:

mysql命令行:
show binlog events in 'bin-log-1.000001'; 

 

 

 

 

八、通过指定时间恢复数据

复制代码
linux命令行:
/usr/bin/mysqlbinlog --start-datetime="2021-06-27 20:58:18" --stop-datetime="2021-06-27 20:58:35" --database=hello /var/lib/mysql/bin-log-1.000001 | /usr/bin/mysql -uroot -p123456zy -v hello

--start-datetime="2021-06-27 20:58:18" 开始时间

--stop-datetime="2021-06-27 20:58:35" 结束时间
复制代码

查看时间信息

linux命令行:
/usr/bin/mysqlbinlog --no-defaults /var/lib/mysql/bin-log-1.000001

 

posted on   宇宙神奇  阅读(7005)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示