首页 > 数据库 >mysqlbinlog~导出sql总结

mysqlbinlog~导出sql总结

时间:2024-01-23 16:47:38浏览次数:41  
标签:00 -- sql 导出 datetime mysql mysqlbinlog 日志

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

基础介绍

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

功能

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

常见使用场景

  • 数据库故障恢复:如果数据库出现问题,可以通过mysqlbinlog将二进制日志应用到备份的数据上,从而恢复到问题发生前的状态。
  • 主从复制:在主从复制中,mysqlbinlog可以在从服务器上应用主服务器的二进制日志,以保持数据的一致性。
  • 审计:通过分析mysqlbinlog的输出,可以查看数据库的修改历史,进行安全审计。

使用示例

# 查看二进制日志文件的内容
mysqlbinlog /var/lib/mysql/binlog.000001

# 将二进制日志文件转换为文本格式
mysqlbinlog --base64-output=DECODE-ROWS /var/lib/mysql/binlog.000001 > binlog.txt

以上就是mysqlbinlog的基本介绍,希望对你有所帮助。

高级技巧

  • 查看某个时间段的
../bin/mysqlbinlog --start-datetime="2023-12-06 09:30:00" --stop-datetime="2023-12-06 09:40:59" mysql-bin.000027
  • 导出某个binlog,并进行转码
../bin/mysqlbinlog --base64-output=DECODE-ROWS --verbose mysql-bin.000011 > mysql-bin.000011.sql
  • 导出某个时间段的binlog
../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
/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
  • 标准输出控制台
/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转换
iconv -f UTF-8 -t GBK -c mysql-bin.000036-3.sql -o mysql-bin.000036-3-2.sql

标签:00,--,sql,导出,datetime,mysql,mysqlbinlog,日志
From: https://www.cnblogs.com/lori/p/17982809

相关文章

  • Java resultset判断mysql表是否存在
    importjava.sql.*;publicclassCheckTableExistence{publicstaticvoidmain(String[]args)throwsSQLException{Stringurl="jdbc:mysql://localhost:3306/mydatabase";//MySQL服务器地址及数据库名称Stringusername="root"......
  • 低版本vsphere部署高版本导出的OVF 报“硬件系列vmx-13不受支持“解决办法
    低版本vsphere部署高版本导出的OVF报“硬件系列vmx-13不受支持“解决办法在vmwarevSphereclient中,选择文件->部署OVF模板,选择指定的OVA文件,按步骤进行,则会出现这样的错误:此OVF软件包使用了不受支持的功能。OVF软件包需要不支持的硬件。详细信息:行26:硬件系列“vmx-13”不受支......
  • mysql patition by--分区函数
    分区函数patitionbygroupby是分组函数,partitionby是分区函数partitionby并没有groupby的汇总功能。partitionby统计的每一条记录都存在,而groupby将所有的记录汇总成一条记录(类似于distinctEmpDepartment去重)相同点:groupby后的聚合函数,partionby后的orderby......
  • SQL优化--使用 EXISTS 代替 IN 和 inner join来选择正确的执行计划
       在使用Exists时,如果能正确使用,有时会提高查询速度:     1,使用Exists代替innerjoin     2,使用Exists代替in  1,使用Exists代替innerjoin例子:    在一般写sql语句时通常会遇到如下语句:     两个表连接时,取一个表的数据,一般的写法通过关联查询(inne......
  • SQL SERVER2005 Index Scan效率
    SQLSERVER2000中,包括网上都说查询时“abc%”能使用到索引,“%abc%”不能使用到索引,一次做培训的时候,给大家介绍“%abc%”不能使用索引的例子发现,在SQLSERVER2005中是可能用到索引。在SQLSERVER2005中查询优化器的确做了很大提高,以下是例子: [[zping.com]]]中operator建立索引i......
  • Ubuntu 安装 MySQL
    安装aptinstallmysql-server卸载aptremovemysql-server1、sudoaptpurgemysql-*2、sudorm-rf/etc/mysql//var/lib/mysql3、sudoaptautoremove4、sudoaptautoreclean重要:Mysql5.7.x及以上的版本可能没有初始密码,直接输入:mysql-uroot就直接进入mys......
  • 各版本 MySQL 并行复制的实现及优缺点
    MySQL并行复制已经是老生常谈,笔者从2010年开始就着手处理线上这个问题,刚开始两三年也乐此不疲分享,现在再提这个话题本来是难免“炒冷饭”嫌疑。最近触发再谈这个话题,是因为有些同学觉得“5.7的并行复制终于彻底解决了复制并发性问题”,感觉还是有必要分析一下。大家都说没有银弹,但......
  • MySQL密码过期策略
    如果要设置密码永不过期的全局策略,可以这样:(注意这是默认值,配置文件中可以不声明)[mysqld]default_password_lifetime=0禁用密码过期:ALTERUSER'testuser'@'localhost'PASSWORDEXPIRENEVER;......
  • 一台MySQL服务器启动多个端口
    一台MySQL服务器启动多个端口在测试Mysql多主一从服务器,即一个从服务器多端口同步不同主库。本文记录了开启不同端口的操作。详细步骤:1、首先要先把my.cnf配置文件复制一份,开几个端口要复制几份当然要重新命名.如:cp/etc/my.cnf/etc/my3306.cnfcp/etc/my.cnf/etc/my3307.cn......
  • 使用KeepAlived搭建MySQL高可用环境
     使用KeepAlived搭建MySQL的高可用环境。首先搭建MySQL的主从复制在Master开启binlog,创建复制帐号,然后在Slave输入命令 2016年7月25日 配置安装技巧: 1,使用yuminstall安装keepAlived  2,安装完后,配置/etc/keepalived/keepalived.conf配置文件,一开始配置名字取错了,老有......