mysql binlog的清理方法与查看

1.查看binlog日志
mysql binlog的清理方法与查看_第1张图片

2.删除某个日志文件之前的所有日志文件
mysql binlog的清理方法与查看_第2张图片
3 重置所有的日志
reset master;

4.关闭mysql的binlog日志

注释掉#log-bin=log_bin
然后重启mysql

5.设置expire_logs_days
expire_logs_days=x x是设置的天数。表示的是x天后mysql的log_bin日志自动的删除。 这种在配置文件中设置参数的一般需要重启mysq。或者也可以动态的设置
mysql binlog的清理方法与查看_第3张图片
6 . 清除binlog时,对从mysql的影响
如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败,并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。

7.mysqlbinlog -v -v log_bin.000006 --base64-output='decode-rows’
-v 是格式化输出,两个-v是更加有好的格式化输出
–base64-output=‘decode-rows’ 解密操作

8.上面这种办法读取出binlog日志的全文内容较多,不容易分辨查看pos点信息,这里介绍一种更为方便的查询命令:

  mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];

         选项解析:
           IN 'log_name'   指定要查询的binlog文件名(不指定就是第一个binlog文件)
           FROM pos        指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)
           LIMIT [offset,] 偏移量(不指定就是0)
           row_count       查询总条数(不指定就是所有行)

         截取部分查询结果:
         *************************** 20. row ***************************
            Log_name: mysql-bin.000021  ----------------------------------------------> 查询的binlog日志文件名
                 Pos: 11197 ----------------------------------------------------------> pos起始点:
          Event_type: Query ----------------------------------------------------------> 事件类型:Query
           Server_id: 1 --------------------------------------------------------------> 标识是由哪台服务器执行的
         End_log_pos: 11308 ----------------------------------------------------------> pos结束点:11308(即:下行的pos起始点)
                Info: use `zyyshop`; INSERT INTO `team2` VALUES (0,345,'asdf8er5') ---> 执行的sql语句
         *************************** 21. row ***************************
            Log_name: mysql-bin.000021
                 Pos: 11308 ----------------------------> pos起始点:11308(即:上行的pos结束点)
          Event_type: Query
           Server_id: 1
         End_log_pos: 11417
                Info: use `zyyshop`; /*!40000 ALTER TABLE `team2` ENABLE KEYS */
         *************************** 22. row ***************************
            Log_name: mysql-bin.000021
                 Pos: 11417
          Event_type: Query
           Server_id: 1
         End_log_pos: 11510
                Info: use `zyyshop`; DROP TABLE IF EXISTS `type`
  这条语句可以将指定的binlog日志文件,分成有效事件行的方式返回,并可使用limit指定pos点的起始偏移,查询条数;
  
  A.查询第一个(最早)的binlog日志:
    mysql> show binlog events\G; 

  B.指定查询 mysql-bin.000021 这个文件:
    mysql> show binlog events in 'mysql-bin.000021'\G;

  C.指定查询 mysql-bin.000021 这个文件,从pos点:8224开始查起:
    mysql> show binlog events in 'mysql-bin.000021' from 8224\G;

  D.指定查询 mysql-bin.000021 这个文件,从pos点:8224开始查起,查询10条
    mysql> show binlog events in 'mysql-bin.000021' from 8224 limit 10\G;

  E.指定查询 mysql-bin.000021 这个文件,从pos点:8224开始查起,偏移2行,查询10条
    mysql> show binlog events in 'mysql-bin.000021' from 8224 limit 2,10\G;

你可能感兴趣的:(mysql,linux)