• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL抑制binlog日志中的binlog部分

mysql 搞代码 4年前 (2022-01-09) 28次浏览 已收录 0个评论

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)

    –插入单条记录本文来源gaodai$ma#com搞$$代**码网$
    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)


    搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:MySQL抑制binlog日志中的binlog部分

    喜欢 (0)
    [搞代码]
    分享 (0)
    发表我的评论
    取消评论

    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址