当前位置:Gxlcms > mysql > MySQL抑制binlog日志中的binlog部分

MySQL抑制binlog日志中的binlog部分

时间:2021-07-01 10:21:17 帮助过:43人阅读

MySQL通过binlog来记录整个数据的变更过程,因此我们只要有MySQL的binlog日志即可完整的还原数据库。MySQL binlog日志记录有3种不

MySQL通过binlog来记录整个数据的变更过程,因此我们只要有MySQL的binlog日志即可完整的还原数据库。MySQL binlog日志记录有3种不同的方式,即:STATEMENT,MIXED,,ROW。对于不同的日志模式,生成的binlog有不同的记录方式。对于MIXED(部分SQL语句)和ROW模式是以base-64方式记录,会以BINLOG开头,是一段伪SQL,我们可以用使用base64-output参数来抑制其显示。本文对此给出了描述及演示。

有关mysqlbinlog的用法,请参考:使用mysqlbinlog提取二进制日志

1、mysqlbinlog之base64-output参数

  • .

  • BINLOG.

  • but unlike NEVER, it does not exit with an error if a row event is found.

  • · Character set information is not available in the binary log, which affects string column display:

  • CHAR(4) CHARACTER SET latin1

    CHAR(2) CHARACTER SET ucs2

  • SET clause.

  • 2、演示生成binlog日志

    --环境
    mysql> show variables like 'version';
    +---------------+------------+
    | Variable_name | Value |
    +---------------+------------+
    | version | 5.6.12-log |
    +---------------+------------+

    --如下查询binlog为row记录模式
    mysql> show variables like 'binlog_for%';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | binlog_format | ROW |
    +---------------+-------+

    mysql> reset master;
    Query OK, 0 rows affected (0.01 sec)

    mysql> show master status;
    +-----------------+----------+--------------+------------------+-------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-----------------+----------+--------------+------------------+-------------------+
    | APP01bin.000001 | 120 | | | |
    +-----------------+----------+--------------+------------------+-------------------+

    mysql> use test;
    Database changed

    --创建表t1
    mysql> create table t1(id smallint,val varchar(20));
    Query OK, 0 rows affected (0.01 sec)

    --插入单条记录
    mysql> insert into t1 values(1,'robin');
    Query OK, 1 row affected (0.00 sec)

    --清空表
    mysql> truncate table t1;
    Query OK, 0 rows affected (0.01 sec)

    --查看binlog events
    mysql> show binlog events;
    +-----------------+-----+-------------+-----------+-------------+----------------------------------------------------------+
    | Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
    +-----------------+-----+-------------+-----------+-------------+----------------------------------------------------------+
    | APP01bin.000001 | 4 | Format_desc | 11 | 120 | Server ver: 5.6.12-log, Binlog ver: 4 |
    | APP01bin.000001 | 120 | Query | 11 | 238 | use `test`; create table t1(id smallint,val varchar(20)) |
    | APP01bin.000001 | 238 | Query | 11 | 310 | BEGIN |
    | APP01bin.000001 | 310 | Table_map | 11 | 358 | table_id: 74 (test.t1) |
    | APP01bin.000001 | 358 | Write_rows | 11 | 402 | table_id: 74 flags: STMT_END_F |
    | APP01bin.000001 | 402 | Xid | 11 | 433 | COMMIT /* xid=30 */ |
    | APP01bin.000001 | 433 | Query | 11 | 517 | use `test`; truncate table t1 |
    +-----------------+-----+-------------+-----------+-------------+----------------------------------------------------------+
    7 rows in set (0.00 sec)

    人气教程排行