最近检查发现mysql 的binlog文件非常大,检查了一下原来是 存在好多类似下面这样的:BINLOG '
+4wOTBMBAAAAXQAAAP+/PAAAACgjAAAAAAAAD2dsb2JhbF9yZXNvdXJjZQAPdG1wX21zX2ZkcF90cmVlABADDw8PA/YPDwMDAwMMAwcDDB4A/QL9AgQBHgAGAPY9+4wOTBcBAAAAAwEAAALBPAAQACgjAAAAAAEAEP//MDhGjwIAClVTQ0YwMDAwOTAuAENhc2ggRmxvdyBmcm9tIENvbnRpbnVpbmcgRmluYW5jaW5nIEFjdGl2aXRpZXMNAENGRiBmcm9tIENvbnQKVVNDRjAwMDEzMAExAgAAAAAAAAAAAAAA+4wOTAEAAAAwOEaPAgAKVVNDRjAwMDE5MCsAQ2FzaCBmcm9tIERpc2NvbnRpbnVlZCBGaW5hbmNpbmcgQWN0aXZpdGllcxMAQ2FzaCBmciBEaXMgRmluIEFjdApVU0NGMDAwMTMwATECAAAAAAAAAAAAAAD7jA5MAQAAAA=='/*!*/;,怎么BINLOG 会产生这样的日志啊,有时候 特别长。 怎么解决。

解决方案 »

  1.   

    文件之所以大,95% 被那样的日志文件 BINLOG '' 里面字符占了,
      

  2.   

    这些是MYSQL写日志的时候做的一些转化,你的
    | binlog_format                           | MIXED      |
    是MIXED类型的吧?在遇到某些特殊的函数,会自动转成ROW类型。你把这个参数改成statement,然后你就可以看到具体的SQL语句了,这个是按语句来写日志的的,ROW是按行来写日志的,MIXED是混合模式。
      

  3.   

    我没有设置那个| binlog_format | MIXED |
    ,这些日志文件大的话都可以上g,查看一下了那个 binlog 写的东西特别多啊,刚查了一下那个帮助文档:
    This variable sets the binary logging format, and can be any one of STATEMENT, ROW, or MIXED. See Section 16.1.2, “Replication Formats”. binlog_format is set by the --binlog-format option at startup, or by the binlog_format variable at runtime. The default mode is STATEMENT. 如果没有设置默认是STATEMENT
      

  4.   

    mysql> show variables like '%format%';
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect...
    Connection id:    18
    Current database: test+---------------------+-------------------+
    | Variable_name       | Value             |
    +---------------------+-------------------+
    | binlog_format       | MIXED             |
    你看看这个变量是多少??
    如果是STATEMENT,就是按语句记录日志,会记录下显式的SQL语句。insert into a values(uuid());
    也会得到一些这样的值。
      

  5.   

    3楼说的时间标的说明,是这样的吧?SET TIMESTAMP=1276049932/*!*/;每个EVENT都有这么个时间,是从1970-01-01到当前时间的秒数。
      

  6.   

    如果是 单机的话 没有设置 主从复制,STATEMENT  和  MIXED 有什么区别?