最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL的binlog日志獲取

 更新時(shí)間:2026年03月13日 09:33:39   作者:lxq124lxq  
mysqlbinlog是MySQL的核心工具,用于解析和提取 binlog 日志,本文主要介紹了MySQL的binlog日志獲取,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

mysqlbinlog 是 MySQL 解析和提取 binlog 日志的核心工具,下面整理了日常開發(fā) / 運(yùn)維中最常用的命令,按使用場景分類,適配你的實(shí)際環(huán)境(基于 /var/lib/mysql 下的 binlog 文件)。

一、基礎(chǔ)查看類(最常用)

1. 查看單個(gè) binlog 文件的完整內(nèi)容

# 查看本地 binlog 文件(基礎(chǔ)格式)
mysqlbinlog /var/lib/mysql/mysql-bin.000067

# 帶行級詳情(ROW 格式下看具體數(shù)據(jù)變更,-vv 更詳細(xì))
mysqlbinlog -v /var/lib/mysql/mysql-bin.000067
mysqlbinlog -vv /var/lib/mysql/mysql-bin.000067

2. 查看 binlog 文件的基礎(chǔ)信息(起始 / 結(jié)束時(shí)間、位置)

# 只看前 50 行(快速獲取文件頭信息)
mysqlbinlog /var/lib/mysql/mysql-bin.000067 | head -50

# 查看文件的起始/結(jié)束位置和時(shí)間(過濾關(guān)鍵字)
mysqlbinlog /var/lib/mysql/mysql-bin.000067 | grep -E "Start|End|TIMESTAMP"

3. 按數(shù)據(jù)庫過濾查看

只提取 purchasingent 數(shù)據(jù)庫的 binlog(你的核心場景):

mysqlbinlog --database=purchasingent /var/lib/mysql/mysql-bin.000067

二、時(shí)間 / 位置篩選類(核心高頻)

1. 按時(shí)間范圍篩選

# 基礎(chǔ)用法(指定起始+結(jié)束時(shí)間)
mysqlbinlog --start-datetime="2026-03-06 00:00:00" --stop-datetime="2026-03-06 23:59:59" /var/lib/mysql/mysql-bin.000067

# 只取起始時(shí)間之后的內(nèi)容
mysqlbinlog --start-datetime="2026-03-06 10:00:00" /var/lib/mysql/mysql-bin.000067

# 只取結(jié)束時(shí)間之前的內(nèi)容
mysqlbinlog --stop-datetime="2026-03-06 18:00:00" /var/lib/mysql/mysql-bin.000067

# 組合數(shù)據(jù)庫過濾+時(shí)間篩選(你的常用場景)
mysqlbinlog --database=purchasingent --start-datetime="2026-03-06 00:00:00" --stop-datetime="2026-03-06 23:59:59" /var/lib/mysql/mysql-bin.000067

2. 按日志位置(Position)篩選

binlog 中每個(gè)事件都有唯一位置值,適合精準(zhǔn)篩選:

# 指定起始位置 + 結(jié)束位置
mysqlbinlog --start-position=107 --stop-position=1000 /var/lib/mysql/mysql-bin.000067

# 只取起始位置之后的內(nèi)容
mysqlbinlog --start-position=107 /var/lib/mysql/mysql-bin.000067

三、輸出 / 導(dǎo)出類(實(shí)用)

1. 導(dǎo)出到文件(便于后續(xù)分析 / 恢復(fù))

# 導(dǎo)出時(shí)間范圍的 binlog 到 sql 文件
mysqlbinlog --start-datetime="2026-03-06 00:00:00" --stop-datetime="2026-03-06 23:59:59" /var/lib/mysql/mysql-bin.000067 > /tmp/purchasingent_binlog_20260306.sql

# 導(dǎo)出多個(gè) binlog 文件到一個(gè)文件
mysqlbinlog /var/lib/mysql/mysql-bin.000066 /var/lib/mysql/mysql-bin.000067 > /tmp/all_binlog.sql

2. 導(dǎo)出為可執(zhí)行的 SQL(去除注釋 / 無關(guān)信息)

mysqlbinlog --skip-gtids --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000067 > /tmp/executable_binlog.sql

# 導(dǎo)出時(shí)間范圍的 binlog 可執(zhí)行的sql到 sql 文件
mysqlbinlog --database=purchasingent --start-datetime="2026-03-06 10:20:00" --stop-datetime="2026-03-06 10:29:59" --skip-gtids --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000067 > /var/lib/mysql/tmp/
/purchasingent_binlog_2026030601.sql

四、遠(yuǎn)程操作類(跨服務(wù)器)

1. 遠(yuǎn)程查看 binlog

mysqlbinlog -h 192.168.1.100 -u root -p123456 -P 3306 --database=purchasingent mysql-bin.000067

2. 遠(yuǎn)程導(dǎo)出 binlog 到本地文件

mysqlbinlog -h 192.168.1.100 -u root -p123456 -P 3306 --start-datetime="2026-03-06 00:00:00" --stop-datetime="2026-03-06 23:59:59" mysql-bin.000067 > /tmp/remote_binlog.sql

五、特殊格式 / 功能類

1. 按字符集解析(避免亂碼)

mysqlbinlog --default-character-set=utf8mb4 /var/lib/mysql/mysql-bin.000067

2. 跳過 GTID(避免重復(fù)執(zhí)行)

適用于有 GTID 開啟的環(huán)境,導(dǎo)出的 SQL 可直接執(zhí)行:

mysqlbinlog --skip-gtids /var/lib/mysql/mysql-bin.000067 > /tmp/no_gtid_binlog.sql

3. 只顯示 DML 語句(INSERT/UPDATE/DELETE)

mysqlbinlog /var/lib/mysql/mysql-bin.000067 | grep -E "INSERT|UPDATE|DELETE"

六、常用參數(shù)速查表

參數(shù)作用
-v/-vv顯示行級詳情(ROW 格式下必備)
--database=db_name只提取指定數(shù)據(jù)庫的 binlog
--start-datetime起始時(shí)間(格式:YYYY-MM-DD HH:MM:SS)
--stop-datetime結(jié)束時(shí)間(同上)
--start-position起始日志位置
--stop-position結(jié)束日志位置
--skip-gtids跳過 GTID 信息(便于執(zhí)行導(dǎo)出的 SQL)
-h/-u/-p/-P遠(yuǎn)程連接參數(shù)(主機(jī) / 用戶名 / 密碼 / 端口)
--default-character-set指定字符集(避免亂碼)
--base64-output=DECODE-ROWS解碼 ROW 格式的 binlog 為可讀 SQL

總結(jié)

  1. 基礎(chǔ)用法:mysqlbinlog [參數(shù)] binlog文件 是核心,最常用參數(shù)為 --database、--start/stop-datetime、-v;
  2. 高頻場景:按時(shí)間 / 數(shù)據(jù)庫篩選 + 導(dǎo)出到文件(適配你的 purchasingent 數(shù)據(jù)庫);
  3. 關(guān)鍵注意:時(shí)間格式必須嚴(yán)格為 YYYY-MM-DD HH:MM:SS,ROW 格式需加 -vv 才能看到具體數(shù)據(jù)變更。

常用

示例1

# 獲取purchasingent庫中,時(shí)間范圍2026-03-06 10:20:00到2026-03-06 10:21:59 的可執(zhí)行的sql,包含Delete內(nèi)容的后50行
# grep -i	忽略大小寫(binlog 中 DELETE 可能是大寫,加 -i 避免漏查)
# grep -C 50	顯示匹配行的前 50 行 + 后 50 行(也可以用 -A 50 -B 50,效果相同)
# grep -A 50	僅顯示匹配行的后 50 行(After)
# grep -B 50	僅顯示匹配行的前 50 行(Before)
mysqlbinlog --database=purchasingent --start-datetime="2026-03-06 10:20:00" --stop-datetime="2026-03-06 10:21:59" --skip-gtids --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000067  |grep -i -A 50 "delete"

# 獲取purchasingent庫中,時(shí)間范圍2026-03-06 10:20:00到2026-03-06 10:29:59 的可執(zhí)行的sql導(dǎo)出到purchasingent_binlog_2026030601.sql中
mysqlbinlog --database=purchasingent --start-datetime="2026-03-06 10:20:00" --stop-datetime="2026-03-06 10:29:59" --skip-gtids --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000067 > /var/lib/mysql/tmp/
/purchasingent_binlog_2026030601.sql

示例2

獲取purchasingent庫中d_cp_purchasingrequisition開頭的表,時(shí)間范圍2026-03-06 10:20:00到2026-03-06 10:21:59 的可執(zhí)行的sql

 #簡潔日志
 mysqlbinlog --database=purchasingent --start-datetime="2026-03-06 10:20:00" --stop-datetime="2026-03-06 10:21:59" --skip-gtids --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000067  |grep  -i -E  "Table_map: \`purchasingent\`.\`d_cp_purchasingrequisition" -A 3
 # 范圍內(nèi)的所有日志
 mysqlbinlog --database=purchasingent --start-datetime="2026-03-06 10:20:00" --stop-datetime="2026-03-06 10:21:59" --skip-gtids --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000067 

簡潔日志結(jié)果

root@680a7c552dab:/tmp#  mysqlbinlog --database=purchasingent --start-datetime="2026-03-06 10:20:00" --stop-datetime="2026-03-06 10:21:59" --skip-gtids --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000067  |grep  -i -E  "Table_map: \`purchasingent\`.\`d_cp_purchasingrequisition" -A 3
#260306 10:21:20 server id 3306  end_log_pos 784198349 CRC32 0xb20d9141         Table_map: `purchasingent`.`d_cp_purchasingrequisition` mapped to number 833
# at 784198349
#260306 10:21:20 server id 3306  end_log_pos 784198796 CRC32 0x53891233         Write_rows: table id 833 flags: STMT_END_F
### INSERT INTO `purchasingent`.`d_cp_purchasingrequisition`
--
#260306 10:21:20 server id 3306  end_log_pos 784201543 CRC32 0x8f63ffb9         Table_map: `purchasingent`.`d_cp_purchasingrequisitiondtl` mapped to number 1204
# at 784201543
#260306 10:21:20 server id 3306  end_log_pos 784202455 CRC32 0x7b7b2c71         Write_rows: table id 1204 flags: STMT_END_F
### INSERT INTO `purchasingent`.`d_cp_purchasingrequisitiondtl`
--
#260306 10:21:20 server id 3306  end_log_pos 784204702 CRC32 0x48ec57fe         Table_map: `purchasingent`.`d_cp_purchasingrequisitiondtl` mapped to number 1204
# at 784204702
#260306 10:21:20 server id 3306  end_log_pos 784205112 CRC32 0x626f1884         Write_rows: table id 1204 flags: STMT_END_F
### INSERT INTO `purchasingent`.`d_cp_purchasingrequisitiondtl`
--
#260306 10:21:20 server id 3306  end_log_pos 784207099 CRC32 0xcde54035         Table_map: `purchasingent`.`d_cp_purchasingrequisition` mapped to number 833
# at 784207099
#260306 10:21:20 server id 3306  end_log_pos 784207959 CRC32 0x181420b5         Update_rows: table id 833 flags: STMT_END_F
### UPDATE `purchasingent`.`d_cp_purchasingrequisition`
--
#260306 10:21:24 server id 3306  end_log_pos 784287873 CRC32 0x4601c581         Table_map: `purchasingent`.`d_cp_purchasingrequisition` mapped to number 833
# at 784287873
#260306 10:21:24 server id 3306  end_log_pos 784288733 CRC32 0x961207ea         Update_rows: table id 833 flags: STMT_END_F
### UPDATE `purchasingent`.`d_cp_purchasingrequisition`
--
#260306 10:21:26 server id 3306  end_log_pos 784312864 CRC32 0x0a5223c0         Table_map: `purchasingent`.`d_cp_purchasingrequisitiondtl` mapped to number 1204
# at 784312864
#260306 10:21:26 server id 3306  end_log_pos 784313776 CRC32 0xb78b9ba1         Delete_rows: table id 1204 flags: STMT_END_F
### DELETE FROM `purchasingent`.`d_cp_purchasingrequisitiondtl`
--
#260306 10:21:26 server id 3306  end_log_pos 784314192 CRC32 0xcf4c1bd8         Table_map: `purchasingent`.`d_cp_purchasingrequisitiondtl` mapped to number 1204
# at 784314192
#260306 10:21:26 server id 3306  end_log_pos 784314602 CRC32 0x7ec98c91         Delete_rows: table id 1204 flags: STMT_END_F
### DELETE FROM `purchasingent`.`d_cp_purchasingrequisitiondtl`
--
#260306 10:21:26 server id 3306  end_log_pos 784314985 CRC32 0x79267223         Table_map: `purchasingent`.`d_cp_purchasingrequisition` mapped to number 833
# at 784314985
#260306 10:21:26 server id 3306  end_log_pos 784315432 CRC32 0x1e3f52d9         Delete_rows: table id 833 flags: STMT_END_F
### DELETE FROM `purchasingent`.`d_cp_purchasingrequisition`

到此這篇關(guān)于MySQL的binlog日志獲取的文章就介紹到這了,更多相關(guān)MySQL binlog日志獲取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談mysql 自定義函數(shù)

    淺談mysql 自定義函數(shù)

    本文主要是分析了一下在工作中寫的一個(gè)mysql的自定義函數(shù),很簡單,僅僅是希望能對大家理解mysql自定義函數(shù)有所幫助。
    2014-09-09
  • Windows下MySQL詳細(xì)安裝過程及基本使用

    Windows下MySQL詳細(xì)安裝過程及基本使用

    本文詳細(xì)講解了Windows下MySQL安裝過程及基本使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-12-12
  • mysql中的“money”類型說明

    mysql中的“money”類型說明

    mysql沒有money類型 sql server才有money類型
    2008-06-06
  • 解決maven打包缺少依賴class xxx for user defined function to_pinyin failed to load問題

    解決maven打包缺少依賴class xxx for user defined&

    在使用自定義函數(shù)時(shí)因依賴缺失導(dǎo)致報(bào)錯,通過定位Maven打包配置發(fā)現(xiàn)缺少依賴包,解決方法是在pom.xml中添加maven-shade-plugin插件,實(shí)現(xiàn)依賴打包和類隔離,成功解決依賴加載問題
    2025-09-09
  • windows版本下mysql的安裝啟動和基礎(chǔ)配置圖文教程詳解

    windows版本下mysql的安裝啟動和基礎(chǔ)配置圖文教程詳解

    本文通過圖文并茂的形式給大家介紹了windows版本下mysql的安裝啟動和基礎(chǔ)配置圖文教程,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • MySQL外鍵約束的刪除和更新總結(jié)

    MySQL外鍵約束的刪除和更新總結(jié)

    這篇文章主要給大家總結(jié)MySQL外鍵約束的刪除和更新,文中通過代碼示例和圖文介紹的非常詳細(xì),對大家了解MySQL外鍵約束有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理

    MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理

    這篇文章主要介紹了MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理,非常不錯,具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-08-08
  • Mysql 忘記root密碼的完美解決方法

    Mysql 忘記root密碼的完美解決方法

    通常在使用Mysql數(shù)據(jù)庫時(shí),如果長時(shí)間沒有登陸,或者由于工作交接完成度不高,會導(dǎo)致數(shù)據(jù)庫root登陸密碼忘記,本文給大家介紹一種當(dāng)忘記mysql root密碼時(shí)的解決辦法,一起看看吧
    2016-12-12
  • SQL中實(shí)現(xiàn)SPLIT函數(shù)幾種方法總結(jié)(必看篇)

    SQL中實(shí)現(xiàn)SPLIT函數(shù)幾種方法總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄猄QL中實(shí)現(xiàn)SPLIT函數(shù)幾種方法總結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • MySQL進(jìn)行監(jiān)控配置的詳細(xì)指南

    MySQL進(jìn)行監(jiān)控配置的詳細(xì)指南

    這篇文章主要和大家分享一個(gè)完整的 MySQL 監(jiān)控配置實(shí)戰(zhàn)方案,涵蓋監(jiān)控工具安裝,核心指標(biāo)采集,可視化展示,告警配置等內(nèi)容,需要的可以了解下
    2025-06-06

最新評論

四川省| 子洲县| 临高县| 嘉义县| 筠连县| 伊宁市| 迁西县| 铁力市| 富裕县| 孙吴县| 扎兰屯市| 内黄县| 昭平县| 夏津县| 河东区| 嘉黎县| 南木林县| 长武县| 焦作市| 杭州市| 石河子市| 南木林县| 徐闻县| 蕲春县| 五大连池市| 博野县| 武川县| 云南省| 磴口县| 鄂尔多斯市| 峨边| 新和县| 铜川市| 肇源县| 磐石市| 小金县| 景泰县| 厦门市| 邵阳市| 德昌县| 肇东市|