• 使用mysqlbinlog从二进制日志文件中查询mysql执行过的sql语句 (原)


    前提
    MySQL开启了binlog日志
    操作
    1. 查看MySQL是否开启binlog(进mysql操作)
      mysql> show variables like 'log_bin%';
          

    2. 查询binlog文件名
            mysql>show master status(进mysql操作)
           
    3. 查mysqlbinlog工具的位置(mysql自带,用来查看二进制日志)(系统目录查看,不进mysql)
           (MySQL二进制文件直接打开是看不懂的,需要用这个自带的查看工具查看)
            [root@iZ25f7emo7cZ /]#  find / -name mysqlbinlog
      
    4. 查找mysql-bin.000007文件位置(系统目录查看)
          find / mysql-bin.000007

         
    5. 将mysql日志内容输入某个文件中.(-v显示sql语句)
         先进入mysqlbinlog操作目录下,进入上面所述第三步文件目录

        

      将目标文件拷贝出来用sublime,editplus等工具,搜索相关的sql即可
               [root@iZ25f7emo7cZ bin]# ./mysqlbinlog ./usr/local/mysql/data/mysql-bin.000007 -v /a.txt
              

        或者
              [root@iZ25f7emo7cZ bin]# ./mysqlbinlog ./usr/local/mysql/data/mysql-bin.000007 -v --result-file=/usr/local/a.txt
    --------------------------------------------------------------------------END-------------------------------------------------------------------------------

    文末附上几个可能用得上的查询日志的条件命令示例

    1、查询时间段内日志的执行内容

    mysqlbinlog --start-datetime='2018-01-08 02:01:00' --stop-datetime='2018-01-08 02:30:10' -d test /var/lib/mysql/mysql-bin.000170 -v

    2、查询时间段内日志中执行的删除语句

    mysqlbinlog --start-datetime='2018-01-08 02:01:00' --stop-datetime='2018-01-08 02:30:10' -d test /var/lib/mysql/mysql-bin.000170 -v|grep DELETE -A 5

    3、统计时间段内日志中执行的删除语句

    mysqlbinlog --start-datetime='2018-01-08 02:01:00' --stop-datetime='2018-01-08 02:30:10' -d test /var/lib/mysql/mysql-bin.000170 -v|grep DELETE |wc -l

  • 相关阅读:
    51 Nod 1068 Bash游戏v3
    51 Nod Bash 游戏v2
    51 Nod 1073 约瑟夫环
    UVA 12063 Zeros and ones 一道需要好好体会的好题
    51 Nod 1161 Partial sums
    2018中国大学生程序设计竞赛
    UVA 11971 Polygon
    UVA 10900 So do you want to be a 2^n-aire?
    UVA 11346 Possibility
    python with as 的用法
  • 原文地址:https://www.cnblogs.com/gyrgyr/p/9983501.html
Copyright © 2020-2023  润新知