日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql第三方工具binlog_mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具)

發布時間:2023/12/9 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql第三方工具binlog_mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.概述

由于服務器生成的二進制日志文件以二進制格式保存,所以如果要想檢查這些文件的文本格式,就會用到mysqlbinlog日志管理工具。

mysqlbinlog的語法如下:

mysqlbinlog [options] log-files log-files2...

其中options有很多選項,常用如下:

選項

說明

-d, --database=name

指定數據庫名稱,只列出指定的數據庫相關操作。

-o, --offset=#

忽略掉日志中的前n行命令

-r, --result-file=name

將輸出的文本格式日志輸出到指定文件

-s,--short-form

顯示簡單格式,省略掉一些信息

--set--charset=char-name

在輸出為文本格式時,在文件第一行加上set names char-name.

-- start-datetime=name-stop-datetime=name

指定日期間隔內的所有日志

--start-position=# --stop-position=#

指定位置間隔內的所有日志

1.1 開啟binlog日志

默認情況下是未打開binlog日志,可以通過以下二種方式查看:

mysql> show binarylogs;

ERROR1381 (HY000): You are not using binarylogging--或者這樣查看

mysql> show variables like '%log_bin%

開啟binlog日志,修改my.cnf文件重啟mysql服務,如下所示:

再次查詢binlog日志狀態:

二. 使用mysqlbinlog查看日志

--先在test表中插入一條數據退出。

mysql> insert into a values('testbinlog');

--查看binlog位置

[root@hsr mysql]# cd/var/lib/mysql

[root@hsr mysql]#lsmysql-bin.000001 mysql-bin.index

2.1?使用mysqlbinlog查看日志 不加任何options參數

[root@hsr~]# cd /usr/local/mysql/bin

[root@hsr bin]# ./mysqlbinlog /var/lib/mysql/mysql-bin.000001

上面的日志文件除了創建表和刪除表的sql外,操作數據庫的語句都加密了。

2.2 使用參數"--base64-output=decode-row -v"查看具體的sql語句,如下命令

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001

上圖中 at 291是插入語句的開始位置, at 384是插入語句的結束位置。如果后續該表數據丟失,可以根據這兩個地方執行恢復。也可以根據開始時間和結束時間來恢復,后面再講日志時具體介紹。

2.3? 加-d選項,將只顯示對test數據庫的操作日志

[root@hsr bin]# ./mysqlbinlog?? /var/lib/mysql/mysql-bin.000001 -d test

2.4??加-o選項, 忽略掉日志中的前n個操作。演示下

--插入三條數據

INSERT INTO a VALUES('testbinlog2')INSERT INTO a VALUES('testbinlog3')INSERT INTO a VALUES('testbinlog4')[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001 -d test -o 14

上圖顯示日志生成后,從at 898行開始顯示。 14個操作代表:日志顯示跳過14個at。

2.5 加-r選項

將輸出的文本格式日志輸出到指定文件,下面將文件結果輸出到文件resultfile中。

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001 -r resultfile

[root@hsr bin]#more resultfile

2.6 加-s 將內容進行簡單顯示

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001 -s

如上圖所示,簡單顯示后,沒有了詳細的sql語句。

2.7?加"--start-datetime--stop-datetime"顯示9:00 ~12:00之間的日志

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001

--start-datetime='2018/08/30 09:00:00' --stop-datetime='2018/08/30 12:00:00'

如上圖所示:最后顯示的時間截是1535600091, 轉換后是2018-08-30 11:34:51。 開始和結束日期可以只寫一個。

2.8 加"--start-position=#和--stop-position=#" 和日期范圍類似,不過更精確

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001 --start-position=944

總結

以上是生活随笔為你收集整理的mysql第三方工具binlog_mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。