1. 程式人生 > >mysql檢視binlog日誌內容

mysql檢視binlog日誌內容

mysql的binlog日誌位置可通過show variables like '%datadir%';檢視,直接開啟無法檢視,要看其內容2個辦法:


1、登入到mysql檢視binlog
只檢視第一個binlog檔案的內容
mysql> show binlog events;


檢視指定binlog檔案的內容
mysql> show binlog events in 'mysql-bin.000002';
  1. mysql> show binlog events in'mysql-bin.000001';  
  2. +------------------+------+-------------+-----------+-------------+-----------------------------------------------------------+  
  3. | Log_name         | Pos  | Event_type  | Server_id | End_log_pos | Info                                                      |  
  4. +------------------+------+-------------+-----------+-------------+-----------------------------------------------------------+  
  5. | mysql-bin.000001 |    4 | Format_desc |       
    195 |         106 | Server ver: 5.1.73-log, Binlog ver: 4                     |  
  6. | mysql-bin.000001 |  106 | Query       |       195 |         198 | use `hadoop`; delete from user where id=3                 |  
  7. | mysql-bin.000001 |  198 | Intvar      |       195 |         226 | INSERT_ID=4                                               |  
  8. | mysql-bin.000001 |  226 | Query       |       195 |         332 | use `hadoop`; INSERT INTO user (id,name)VALUES (NULL,1)   |  
  9. | mysql-bin.000001 |  332 | Query       |       195 |         424 | use `hadoop`; delete from user where id=3                 |  
  10. | mysql-bin.000001 |  424 | Intvar      |       195 |         452 | INSERT_ID=5                                               |  
  11. | mysql-bin.000001 |  452 | Query       |       195 |         560 | use `hadoop`; INSERT INTO user (id,name)VALUES (NULL,222) |  
  12. | mysql-bin.000001 |  560 | Query       |       195 |         660 | use `hadoop`; DELETE FROM `user` WHERE (`id`='1')         |  
  13. | mysql-bin.000001 |  660 | Intvar      |       195 |         688 | INSERT_ID=6                                               |  
  14. | mysql-bin.000001 |  688 | Query       |       195 |         795 | use `hadoop`; INSERT INTO `user` (`name`) VALUES ('555')  |  
  15. | mysql-bin.000001 |  795 | Intvar      |       195 |         823 | INSERT_ID=7                                               |  
  16. | mysql-bin.000001 |  823 | Query       |       195 |         930 | use `hadoop`; INSERT INTO `user` (`name`) VALUES ('555')  |  
  17. | mysql-bin.000001 |  930 | Intvar      |       195 |         958 | INSERT_ID=8                                               |  
  18. | mysql-bin.000001 |  958 | Query       |       195 |        1065 | use `hadoop`; INSERT INTO `user` (`name`) VALUES ('555')  |  
  19. | mysql-bin.000001 | 1065 | Intvar      |       195 |        1093 | INSERT_ID=9                                               |  
  20. | mysql-bin.000001 | 1093 | Query       |       195 |        1200 | use `hadoop`; INSERT INTO `user` (`name`) VALUES ('555')  |  
  21. | mysql-bin.000001 | 1200 | Query       |       195 |        1300 | use `hadoop`; DELETE FROM `user` WHERE (`id`='9')         |  
  22. | mysql-bin.000001 | 1300 | Query       |       195 |        1400 | use `hadoop`; DELETE FROM `user` WHERE (`id`='8')         |  
  23. | mysql-bin.000001 | 1400 | Query       |       195 |        1500 | use `hadoop`; DELETE FROM `user` WHERE (`id`='7')         |  
  24. | mysql-bin.000001 | 1500 | Query       |       195 |        1600 | use `hadoop`; DELETE FROM `user` WHERE (`id`='4')         |  
  25. | mysql-bin.000001 | 1600 | Query       |       195 |        1700 | use `hadoop`; DELETE FROM `user` WHERE (`id`='5')         |  
  26. | mysql-bin.000001 | 1700 | Query       |       195 |        1800 | use `hadoop`; DELETE FROM `user` WHERE (`id`='6')         |  
  27. | mysql-bin.000001 | 1800 | Intvar      |       195 |        1828 | INSERT_ID=10                                              |  
  28. | mysql-bin.000001 | 1828 | Query       |       195 |        1935 | use `hadoop`; INSERT INTO `user` (`name`) VALUES ('555')  |  
  29. | mysql-bin.000001 | 1935 | Intvar      |       195 |        1963 | INSERT_ID=11                                              |  
  30. | mysql-bin.000001 | 1963 | Query       |       195 |        2070 | use `hadoop`; INSERT INTO `user` (`name`) VALUES ('666')  |  
  31. | mysql-bin.000001 | 2070 | Intvar      |       195 |        2098 | INSERT_ID=12                                              |  
  32. | mysql-bin.000001 | 2098 | Query       |       195 |        2205 | use `hadoop`; INSERT INTO `user` (`name`) VALUES ('777')  |  
  33. +------------------+------+-------------+-----------+-------------+-----------------------------------------------------------+  

或者

登入mysql安裝的那臺機器,找到my.cnf.我的my.cnf檔案在etc地下,所有執行 cat /etc/my.cnf ,看到如圖所示的binlogs存放位置 
這裡寫圖片描述 
進入日誌所在目錄 cd /home/mysql/logs/binlogs, 輸入ls -al 檢視需要檢視的binlogs產生的時間。

這裡寫圖片描述


檢視當前正在寫入的binlog檔案
mysql> show master status\G
  1. mysql> show master status\G  
  2. *************************** 1. row ***************************  
  3.             File: mysql-bin.000002
  4.         Position: 106
  5.     Binlog_Do_DB:  
  6. Binlog_Ignore_DB: mysql,information_schema,performance_schema  
  7. 1 row in set (0.00 sec)  


獲取binlog檔案列表
mysql> show binary logs;
  1. mysql> show binary logs;  
  2. +------------------+-----------+  
  3. | Log_name         | File_size |  
  4. +------------------+-----------+  
  5. | mysql-bin.000001 |      3548 |  
  6. | mysql-bin.000002 |       106 |  
  7. +------------------+-----------+  
  8. 2 rows in set (0.00 sec)  



2、用mysqlbinlog工具檢視
基於開始/結束時間
[[email protected] ~]# mysqlbinlog --start-datetime='2016-08-02 00:00:00' --stop-datetime='2016-08-03 23:01:01' -d hadoop /var/lib/mysql/mysql-bin.000001

如果需要查詢2017-09-17 07:21:09到2017-09-19 07:59:50 資料庫為geeRunner 的操作日誌,輸入如下命令將資料寫入到一個備用的txt即可。

mysqlbinlog --no-defaults --database=geeRunner --start-datetime="2017-09-17 07:21:09" --stop-datetime="2017-09-19 07:59:50" binlogs.000080 > sanjiaomao.txt
  • 1

如果本地查詢,輸入命令

 mysqlbinlog --no-defaults --database=geeRunner --start-datetime="2017-09-17 07:21:09" --stop-datetime="2017-09-19 07:59:50" binlogs.000080 | more
  • 1

這裡寫圖片描述

如果取下來查詢,使用winscp工具,登入到db所在機器,將資料取出來。

如果需要過濾,只查詢insert,update,delete的語句,可以這樣寫:

mysqlbinlog --no-defaults --database=raceEnroll  binlogs.000078 |grep update |more

基於pos值,注:hadoop是庫名,/var/lib/mysql/mysql-bin.000001是二進位制檔案路徑
[[email protected] ~]# mysqlbinlog --start-position=2098 --stop-position=2205 -d hadoop /var/lib/mysql/mysql-bin.000001

  1. /*!40019 SET @@session.max_insert_delayed_threads=0*/;  
  2. /*!50003 SET @[email protected]@COMPLETION_TYPE,COMPLETION_TYPE=0*/;  
  3. DELIMITER /*!*/;  
  4. 相關推薦

    mysql檢視binlog日誌內容

    mysql的binlog日誌位置可通過show variables like '%datadir%';檢視,直接開啟無法檢視,要看其內容2個辦法:1、登入到mysql檢視binlog只檢視第一個binlog檔案的內容mysql> show binlog events;檢

    RDS檢視Binlog日誌內容

      工程師 65533 號 : 您好,已經被上傳的binlog日誌,可以在控制檯-備份恢復裡下載 https://help.aliyun.com/knowledge_detail/41710.html?spm=5176.11065259.1996646101.searchclickre

    Mysql檢視binlog日誌

    1、語法:(用於在二進位制日誌中顯示事件。如果您不指定’log_name’,則顯示第一個二進位制日誌。LIMIT子句和SELECT語句具有相同的語法。)詳細看7 show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_co

    mysql 檢視binlog日誌

    binlog介紹 1.binlog,即二進位制日誌,它記錄了資料庫上的所有改變. 2.改變資料庫的SQL語句執行結束時,將在binlog的末尾寫入一條記錄,同時通知語句解析器,語句執行完畢. 3binlog格式 基於語句,無法保證所有語句都在從庫執行成功,比如update

    提取mysql binlog日誌內容

    整理自網路 (mysqlbinlog命令 -v 顯示每個欄位插入的值, -v -v顯示每個欄位的註釋,包括資料型別) MySQL binlog日誌記錄了MySQL資料庫從啟用日誌以來所有對當前資料庫的變更。 binlog日誌屬於二進位制檔案,實現基於時間點的恢復或者不完全

    開啟mysqlbinlog日誌&檢視$備份

    1、5.7版本前  修改my.cnf檔案,新增log-bin=my-bin(my.cnf的位置根據自己安裝的路徑檢視) # vi /usr/local/mysql/my.cnf log-bin=my-bin      &nbs

    mysql開啟binlog日誌和慢查詢日誌

    logs launch style spa 簡單 bsp mys 自動 文件的 1)首先,為什麽要開啟binlog日誌和慢查詢日誌呢? binlog日誌會記錄下數據庫的所以增刪改操作,當不小心刪除、清空數據,或數據庫系統出錯,這時候就可以使用binlog日誌來還原數據庫,

    利用Maxwell組件實時監聽Mysqlbinlog日誌

    nbsp 重啟 mysqld pan cli 生成 flush rest 插入數據 一:在linux環境下安裝部署好mysql 開啟binlog Vim /etc/my.cnf mysql的binlog格式有3種,為了把binlog解析成json數據格式,要設置b

    Mysqlbinlog日誌說明及利用binlog日誌恢復數據操作記錄

    Language 命令 ani art ase 回來 log日誌 slaves update 眾所周知,binlog日誌對於mysql數據庫來說是十分重要的。在數據丟失的緊急情況下,我們往往會想到用binlog日誌功能進行數據恢復(定時全備份+binlog日誌恢復增量數據部

    mysql資料庫binlog日誌太大的清理方法

    mysql資料庫binlog日誌太大的清理方法  1.檢視binlog日誌 mysql> show binary logs; +------------------+------------+ | Log_name    

    mysql 使用binlog日誌

    一. 利用binlog恢復庫表策略:1.啟用binlog日誌2.建立db1庫tb1表,插入3條記錄3.刪除tb1表中剛插入的3條記錄4.使用mysqlbinlog恢復刪除的3條記錄 步驟一:啟用binlog日誌1)調整/etc/my.cnf配置,並重啟服務[mysqld]......log_bin=logd

    mysql 使用binlog日誌

    str gdi strong my.cnf配置 dup lec sel ins 之前 一. 利用binlog恢復庫表策略:1.啟用binlog日誌2.創建db1庫tb1表,插入3條記錄3.刪除tb1表中剛插入的3條記錄4.使用mysqlbinlog恢復刪除的3條記錄 步驟一

    Linux下開啟MysqlBinLog日誌模式

    1.因為有時候我們需要實現:mysql增量備份、主從複製,所以需要修改mysql的日誌模式,那麼首先mysql的cnf檔案一般都是在/etc/my.cnf,找到這個檔案然後準備修改內容。 2.輸入: vim /etc/my.cnf  , 找到server-id設

    【轉】MySQLbinlog日誌

    轉自:https://www.cnblogs.com/martinzhang/p/3454358.html binlog 基本認識 MySQL的二進位制日誌可以說是MySQL最重要的日誌了,它記錄了所有的DDL和DML(除了資料查詢語句)語句,以事件形式記錄,還包含語句所執行的消耗的時間,

    windows環境mysql開啟binlog日誌方法

    進入mysql C:\Users\hcf> mysql -uroot -p123456 檢視binlog mysql> show binary logs; ERROR 開始配置 在myslq的安裝目錄下,找到my.ini 在mysqld下面新增 s

    MySQL設定binlog日誌的有效期自動回收

    設定日誌保留天數,到期後自動刪除 檢視當前日誌儲存天數: show variables like '%expire_logs_days%'; 預設是0,即永不過期。  通過設定全域性引

    windows下mysql開啟binlog日誌及利用binlog日誌恢復資料筆記

    1、開啟binlog日誌。 找到mysql安裝目錄,開啟配置檔案my.ini 在[mysqld]下新增: bin-log=mysql-bin 儲存後重啟mysql。此時在data目錄會生成mysql-bin.000001和mysql-bin.index。 注意:My

    開啟MySQLbinlog日誌

    binlog 就是binary log,二進位制日誌檔案,這個檔案記錄了mysql所有的dml操作。通過binlog日誌我們可以做資料恢復,做主住複製和主從複製等等。對於開發者可能對binlog並不怎麼關注,但是對於運維或者架構人員來講是非常重要的。 如何開啟mysql的

    資料採集之解析Mysqlbinlog日誌傳送至Kafka實時消費

    本文采用Maxwell來實現實時解析mysql的binlog日誌傳送至kafka 1、開啟mysql binlog 環境中mysql是docker容器,所以需要進入容器修改mysql配置.

    MySQLbinlog日誌

    binlog 基本認識     MySQL的二進位制日誌可以說是MySQL最重要的日誌了,它記錄了所有的DDL和DML(除了資料查詢語句)語句,以事件形式記錄,還包含語句所執行的消耗的時間,MySQL的二進位制日誌是事務安全型的。     一般來說開啟二進位制日誌大概會有1