mysql查看binlog日志


       MySQL的二進制日志可以說是MySQL最重要的日志了,它記錄了所有的DDL和DML(除了數據查詢語句)語句,以事件形式記錄,還包含語句所執行的消耗的時間,MySQL的二進制日志是事務安全型的。一般來說開啟二進制日志大概會有1%的性能損耗(參見MySQL官方中文手冊 5.1.24版)。二進制有兩個最重要的使用場景: 
      其一:MySQL Replication在Master端開啟binlog,Mster把它的二進制日志傳遞給slaves來達到master-slave數據一致的目的。
      其二:自然就是數據恢復了,通過使用mysqlbinlog工具來使恢復數據。
      二進制日志包括兩類文件:二進制日志索引文件(文件名后綴為.index)用於記錄所有的二進制文件,二進制日志文件(文件名后綴為.00000*)記錄數據庫所有的DDL和DML(除了數據查詢語句)語句事件。

一、開啟binlog

     在[mysqld] 區塊設置/添加 log-bin=mysql-bin 確認是打開狀態(值 mysql-bin 是日志的基本名或前綴名);

二、通過mysql的變量配置表,查看二進制日志是否已開啟

    mysql> show variables like 'log_%'; 
    +----------------------------------------+---------------------------------------+
    | Variable_name                          | Value                                 |
    +----------------------------------------+---------------------------------------+
    | log_bin                                | ON                                    | ------> ON表示已經開啟binlog日志
    | log_bin_basename                       | /usr/local/mysql/data/mysql-bin       |
    | log_bin_index                          | /usr/local/mysql/data/mysql-bin.index |
    | log_bin_trust_function_creators        | OFF                                   |
    | log_bin_use_v1_row_events              | OFF                                   |
    | log_error                              | /usr/local/mysql/data/martin.err      |
    | log_output                             | FILE                                  |
    | log_queries_not_using_indexes          | OFF                                   |
    | log_slave_updates                      | OFF                                   |
    | log_slow_admin_statements              | OFF                                   |
    | log_slow_slave_statements              | OFF                                   |
    | log_throttle_queries_not_using_indexes | 0                                     |
    | log_warnings                           | 1                                     |
    +----------------------------------------+---------------------------------------+

 三、binlog日志內容查看

     binlog日志有二種查看方式,具體如下:

    1、mysql查看binlog

mysql> show binlog events;   #只查看第一個binlog文件的內容
mysql> show binlog events in 'mysql-bin.000002';#查看指定binlog文件的內容
mysql> show binary logs;  #獲取binlog文件列表
mysql> show master status; #查看當前正在寫入的binlog文件

 2、使用mysqlbinlog工具

     mysqlbinlog是一個查看mysql二進制日志的工具,可以把mysql上面的所有操作記錄從日志里導出,這個工具默認的安裝路徑為:/usr/local/mysql/bin/mysqlbinlog

     可以通過find / -name "mysqlbinlog"命令查找mysqlbinlog的工具路徑。

      基於開始/結束時間:

/usr/local/mysql/bin/mysqlbinlog --start-datetime="2013-03-01 00:00:00" --stop-datetime="2014-03-21 23:59:59" /usr/local/mysql/var/mysql-bin.000007 -r  test2.sql

 參見:http://www.yaoguangkeji.com/a_4brldYkw.html

              http://www.boydwang.com/2014/03/use-mysqlbinlog-to-restore-accidentally-deleted-data/

              http://blog.csdn.net/nuli888/article/details/52106910

              https://www.cnblogs.com/martinzhang/p/3454358.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM