mysqlbinlog命令詳解 Part 6 讀取遠端MySQL伺服器日誌

ibsbforever發表於2019-07-16

實驗環境

此次實驗的環境如下

  • MySQL 5.7.25

  • Redhat 6.10

  • binlog模式採用row模式

前面的一些章節我們對mysqldump常用命令進行了講解

這個專題的內容為mysqlbinlog命令的詳解

mysqlbinlog是MySQL中用來處理binlog的工具

這節內容講如何讀取遠端MySQL伺服器日誌

1.  mysqlbinlog連線引數

使用 --read-from-remote-server 讀取遠端資料庫日誌,而不是讀取本地檔案

或者 -R 引數

當然我們可以用他來連線本地資料庫來讀取日誌檔案

需要搭配如下連線引數來使用

  • --host

  • --password

  • --port,

  • --protocol

  • --socket

  • --user

注意如果沒有--read-from-remote-server 引數,則上面的連線引數被忽略

這個引數需要遠端資料庫開啟,而且只能讀取binlog,不能讀取relay log

連線的使用者需要有連線遠端資料庫的許可權

2. 連線遠端資料庫日誌(讀取後斷開)

mysqlbinlog --read-from-remote-server --host  11.12.14.29 --user system --password  --port 3306  --protocol=tcp  -vv mysql-bin.000001

1.png

命令執行後提示輸入密碼,之後即可看到binlog內容

注意需要加上binlog檔名稱,不要使用絕對路徑

我們同樣可以使用start_position start_datetime 等引數來指定讀取log的區間

我們可以使用--result-file引數指定輸出到檔案

mysqlbinlog --read-from-remote-server --host  11.12.14.29 --user system --password  --port 3306  --protocol=tcp  -vv mysql-bin.000001 --result-file=/tmp/output.sql

3. 持續讀取遠端資料庫日誌

上面的命令執行完成後退出mysqlbinlog命令列

我們可以使用--stop-never引數來持續讀取遠端資料庫的日誌

mysqlbinlog --read-from-remote-server --host  11.12.14.29 --user system --password  --port 3306  --protocol=tcp  --stop-never  -vv mysql-bin.000001

命令執行後提示輸入密碼,之後即可看到binlog內容

該引數會預設加上--to-last-log引數,即mysqlbinlog會自動一直讀取到遠端資料庫的最後一個日誌檔案

這時如果遠端資料庫有操作,則會持續顯示出來

2.png

我們可以使用--result-file引數指定輸出到檔案

mysqlbinlog --read-from-remote-server --host  11.12.14.29 --user system --password  --port 3306  --protocol=tcp  --stop-never  -vv mysql-bin.000001 --result-file=/tmp/output.sql

4. 參考連結

https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html

好了 今天的內容就說到這裡,下節再見


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28413242/viewspace-2650695/,如需轉載,請註明出處,否則將追究法律責任。

相關文章