Maison  >  Article  >  base de données  >  MySQL抑制binlog日志中的binlog部分

MySQL抑制binlog日志中的binlog部分

WBOY
WBOYoriginal
2016-06-07 16:42:19833parcourir

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)

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn