翼度科技»论坛 编程开发 mysql 查看内容

mysqlbinlog~导出sql总结

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
mysqlbinlog是MySQL数据库中的一个实用程序,它用于处理二进制日志文件(也称为“binlogs”)。这些文件包含了在MySQL服务器上发生的所有更改和操作的信息。mysqlbinlog工具可以帮助你查看、分析或者应用这些日志。
基础介绍

下面是一些关于mysqlbinlog的基本介绍:
功能


  • 查看二进制日志文件的内容。
  • 将二进制日志文件转换为文本格式,方便查看和理解。
  • 过滤特定时间段的日志记录。
  • 过滤特定数据库或表的日志记录。
常见使用场景


  • 数据库故障恢复:如果数据库出现问题,可以通过mysqlbinlog将二进制日志应用到备份的数据上,从而恢复到问题发生前的状态。
  • 主从复制:在主从复制中,mysqlbinlog可以在从服务器上应用主服务器的二进制日志,以保持数据的一致性。
  • 审计:通过分析mysqlbinlog的输出,可以查看数据库的修改历史,进行安全审计。
使用示例
  1. # 查看二进制日志文件的内容
  2. mysqlbinlog /var/lib/mysql/binlog.000001
  3. # 将二进制日志文件转换为文本格式
  4. mysqlbinlog --base64-output=DECODE-ROWS /var/lib/mysql/binlog.000001 > binlog.txt
复制代码
以上就是mysqlbinlog的基本介绍,希望对你有所帮助。

高级技巧


  • 查看某个时间段的
  1. ../bin/mysqlbinlog --start-datetime="2023-12-06 09:30:00" --stop-datetime="2023-12-06 09:40:59" mysql-bin.000027
复制代码

  • 导出某个binlog,并进行转码
  1. ../bin/mysqlbinlog --base64-output=DECODE-ROWS --verbose mysql-bin.000011 > mysql-bin.000011.sql
复制代码

  • 导出某个时间段的binlog
  1. ../bin/mysqlbinlog --start-datetime="2023-12-06 09:30:00" --stop-datetime="2023-12-06 09:40:59" --base64-output=DECODE-ROWS --verbose mysql-bin.000027 > mysql-bin.000027.sql
复制代码

  • 导出某个时间段的binlog,处理unknown variable 'default-character-set=utf8mb4',需要添加 --no-defaults
  1. /usr/local/mysql/bin/mysqlbinlog  --no-defaults   --start-datetime="2024-01-19 00:00:00" --stop-datetime="2024-01-22 00:00:59" --base64-output=DECODE-ROWS --verbose mysql-bin.000036 > mysql-bin.000036-2.sql
复制代码

  • 标准输出控制台
  1. /usr/local/mysql/bin/mysqlbinlog  --no-defaults   --start-datetime="2024-01-19 00:00:00" --stop-datetime="2024-01-22 00:00:59" --base64-output=DECODE-ROWS --verbose mysql-bin.000036 -stdout
复制代码

  • 中文在vi和下载后是乱码了,但cat不是乱码,可用iconv转换
  1. iconv -f UTF-8 -t GBK -c mysql-bin.000036-3.sql -o mysql-bin.000036-3-2.sql
复制代码
来源:https://www.cnblogs.com/lori/p/17982809
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具