二进制日志MySQL

二进制日志MySQL,mysql,backup,database-backups,binary-log,Mysql,Backup,Database Backups,Binary Log,我有一些来自localhost的二进制日志文件,但是当我写 mysqlbinlog mysql-bin.000001 > statament.sql 或者一个文本文件,它只是返回乱七八糟的信息 /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELI

我有一些来自localhost的二进制日志文件,但是当我写

     mysqlbinlog mysql-bin.000001 > statament.sql
或者一个文本文件,它只是返回乱七八糟的信息

    /*!40019 SET @@session.max_insert_delayed_threads=0*/;
    /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
    DELIMITER /*!*/;
    # at 4
    #120919 11:08:54 server id 1  end_log_pos 106   Start: binlog v 4, server v 5.1.33-        community-log created 120919 11:08:54 at startup
    ROLLBACK/*!*/;
    BINLOG '
    potZUA8BAAAAZgAAAGoAAAAAAAQANS4xLjMzLWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAACmi1lQEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
    '/*!*/;
    # at 106
    #120919 11:26:07 server id 1  end_log_pos 125   Stop
    DELIMITER ;
    # End of log file
    ROLLBACK /* added by mysqlbinlog */;
    /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
所以这主要是困扰。。。我没有设置奴隶。。。知道我做错了什么吗


谢谢

MySQL二进制日志定义为以二进制形式记录数据操作,以节省处理时间和空间。因此,当您检查它们时,应该将
--base64 output=decode rows
选项添加到
mysqlbinlog
客户端,使输出解码。

您可以使用以下方法:

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001 > statament.sql

我不认为你做错了什么,而不是
--没有默认值--base64输出=解码行-v

。它只显示一个空的日志文件。自启动master以来,您是否进行过任何更新、插入或删除?嘿,谢谢您的回复。。是的,我做了并执行了这个mysqlbinlog-u username-p--host=localhost testEDIT:我现在做了这个mysqlbinlog-u root-p--host=localhost将您的<更改为>。mysqlbinlog mysql-bin.000001>statement.sql它的作用是将二进制文件转换为sql语句……嗨!谢谢你的第一个答案,但是你能添加一些关于你建议的解决方案的细节吗?什么信息?你的答案对其他人来说可能不太清楚,我已经编辑了以使其更具可读性。您还可以描述为什么此解决方案更好。