開啟mysql的binlog日志步驟詳解
mysql版本5.7
1.查看是否開啟bin_log
show global variables like'log_bin';

off的話需要先開啟
在mysql的文件夾目錄中找到my.ini

加一行l(wèi)og-bin="C:/ProgramData/MySQL/MySQL Server 5.7/logs/log-bin"
并提前創(chuàng)建好目錄


2.數(shù)據(jù)庫會(huì)把日志放進(jìn)logs目錄中

3.查看log日志
SHOW BINARY LOGS;

查看log-bin.000001文件指定時(shí)間的log
(要運(yùn)行mysqlbinlog命令,您需要在操作系統(tǒng)的命令行界面(例如Windows的命令提示符或PowerShell,Linux或macOS的終端)中執(zhí)行,而不是在MySQL命令行客戶端或任何SQL管理工具中。)
mysqlbinlog --no-defaults --base64-output=decode-rows -v --database="ezhizao_yzbh_ggy" --start-datetime="2024-12-04 11:00:00" --stop-datetime="2025-07-17 12:00:00" "log-bin.000001"
C:\ProgramData\MySQL\MySQL Server 5.7\logs>mysqlbinlog --no-defaults --base64-output=decode-rows -v --database="ezhizao_yzbh_ggy" --start-datetime="2024-12-04 11:10:00" --stop-datetime="2025-07-17 12:00:00" "log-bin.000001" /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #241203 16:50:52 server id 1 end_log_pos 123 CRC32 0xd1b0f8d9 Start: binlog v 4, server v 5.7.36-log created 241203 16:50:52 at startup # Warning: this binlog is either in use or was not closed properly. ROLLBACK/*!*/; # at 1247 #241204 11:11:55 server id 1 end_log_pos 1312 CRC32 0x7bbf9070 Anonymous_GTID last_committed=3 sequence_number=4 rbr_only=yes /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/; # at 1312 #241204 11:11:55 server id 1 end_log_pos 1396 CRC32 0xd0da4e48 Query thread_id=5 exec_time=0 error_code=0 SET TIMESTAMP=1733281915/*!*/; SET @@session.pseudo_thread_id=5/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=1436549152/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8mb4 *//*!*/; SET @@session.character_set_client=45,@@session.collation_connection=45,@@session.collation_server=8/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; BEGIN /*!*/; # at 1396 #241204 11:11:55 server id 1 end_log_pos 1493 CRC32 0xaa53947b Table_map: `ezhizao_yzbh_ggy`.`fxy_financial_voucher_template` mapped to number 140 # at 1493 #241204 11:11:55 server id 1 end_log_pos 1591 CRC32 0x86714204 Update_rows: table id 140 flags: STMT_END_F ### UPDATE `ezhizao_yzbh_ggy`.`fxy_financial_voucher_template` ### WHERE ### @1=12 ### @2='12' ### @3=b'0' ### @4=1 ### @5=1 ### @6=2 ### @7=222 ### SET ### @1=12 ### @2='12' ### @3=b'0' ### @4=1 ### @5=1 ### @6=555 ### @7=222 # at 1591 #241204 11:11:55 server id 1 end_log_pos 1622 CRC32 0x32e198c4 Xid = 292 COMMIT/*!*/; SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/; DELIMITER ; # End of log file /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
整理了下常用的配置項(xiàng)
啟用二進(jìn)制日志:
[mysqld] log_bin = mysql-bin
log_bin指定了二進(jìn)制日志文件的前綴名稱。日志文件將以這個(gè)前綴開始,后跟一個(gè)數(shù)字后綴。設(shè)置日志格式:
[mysqld] binlog_format = ROW | STATEMENT | MIXED
ROW:每行變化都記錄在日志中。STATEMENT:記錄執(zhí)行的SQL語句。MIXED:結(jié)合ROW和STATEMENT,根據(jù)情況選擇最合適的模式。
指定日志文件大小:
[mysqld] max_binlog_size = 100M
max_binlog_size指定了單個(gè)binlog文件的最大尺寸。當(dāng)達(dá)到這個(gè)大小時(shí),MySQL將創(chuàng)建一個(gè)新的日志文件。二進(jìn)制日志緩存大小:
[mysqld] binlog_cache_size = 32K
binlog_cache_size指定了事務(wù)日志緩存的大小,用于ROW格式的binlog。二進(jìn)制日志索引文件:
[mysqld] log_bin_index = mysql-bin.index
log_bin_index指定了二進(jìn)制日志索引文件的名稱,該文件記錄了所有當(dāng)前活躍和舊的binlog文件的位置。同步二進(jìn)制日志到磁盤:
[mysqld] binlog_sync = 1
binlog_sync控制何時(shí)將事務(wù)日志從緩存同步到磁盤。1表示每次事務(wù)后都同步,這會(huì)降低性能但確保數(shù)據(jù)安全。二進(jìn)制日志過期天數(shù):
[mysqld] expire_logs_days = 7
expire_logs_days指定了binlog文件在被自動(dòng)刪除前可以保留的天數(shù)。最大二進(jìn)制日志文件數(shù)量:
[mysqld] max_binlog_files = 100
max_binlog_files指定了服務(wù)器將保留的最大binlog文件數(shù)量。當(dāng)超過這個(gè)數(shù)量時(shí),最舊的文件將被刪除。啟用GTID模式:
[mysqld] gtid_mode = ON
gtid_mode啟用全局事務(wù)標(biāo)識(shí)符(GTID),用于復(fù)制和恢復(fù)。啟用自動(dòng)位置同步:
[mysqld] log_slave_updates = 1
log_slave_updates允許從服務(wù)器將復(fù)制的更新記錄到自己的binlog中。
總結(jié)
到此這篇關(guān)于開啟mysql的binlog日志的文章就介紹到這了,更多相關(guān)開啟mysql的binlog日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL使用binlog日志恢復(fù)數(shù)據(jù)的方法步驟
- MySQL刪除binlog日志文件的三種實(shí)現(xiàn)方式
- Python解析MySQL Binlog日志分析情況
- 使用Canal監(jiān)聽MySQL Binlog日志的實(shí)現(xiàn)方案
- mysql查看binlog日志的實(shí)現(xiàn)方法
- MySQL使用binlog日志進(jìn)行數(shù)據(jù)庫遷移和數(shù)據(jù)恢復(fù)
- Docker內(nèi)部MySQL如何開啟binlog日志
- mysql binlog日志查詢不出語句問題及解決
- MySQL中根據(jù)binlog日志進(jìn)行恢復(fù)的實(shí)現(xiàn)
相關(guān)文章
MySQL中主鍵索引與聚焦索引之概念的學(xué)習(xí)教程
這篇文章主要介紹了MySQL中的主鍵索引與聚焦索引的概念,文中也對(duì)比了兩種索引有何不同,需要的朋友可以參考下2015-11-11
MySQL根據(jù)條件遷移數(shù)據(jù)的幾種方法實(shí)現(xiàn)
本文主要介紹了MySQL根據(jù)條件遷移數(shù)據(jù)的實(shí)現(xiàn),包括使用INSERT INTO SELECT、UPDATE、DELETE語句以及結(jié)合子查詢進(jìn)行遷移,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
mysql 臨時(shí)表 cann''t reopen解決方案
MySql關(guān)于臨時(shí)表cann't reopen的問題,本文將提供詳細(xì)的解決方案,需要了解的朋友可以參考下2012-11-11
淺談mysql中concat函數(shù),mysql在字段前/后增加字符串
下面小編就為大家?guī)硪黄獪\談mysql中concat函數(shù),mysql在字段前/后增加字符串。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
mysql搭建主從復(fù)制的實(shí)現(xiàn)步驟
在MySQL集群中,主庫更新會(huì)同步到從庫,但從庫更新不同步到主庫,主從復(fù)制能分?jǐn)倝毫?本文就來介紹一下mysql搭建主從復(fù)制的實(shí)現(xiàn)步驟,感興趣的可以了解一下2024-11-11
MySQL使用binlog日志進(jìn)行數(shù)據(jù)庫遷移和數(shù)據(jù)恢復(fù)
MySQL的二進(jìn)制日志是MySQL數(shù)據(jù)庫中非常關(guān)鍵的一個(gè)組件,主要用于記錄所有數(shù)據(jù)庫表結(jié)構(gòu)或表數(shù)據(jù)改變的操作語句,binlog是MySQL數(shù)據(jù)復(fù)制的基礎(chǔ),并且常常被用于數(shù)據(jù)恢復(fù),本文給大家介紹了MySQL使用binlog日志進(jìn)行數(shù)據(jù)庫遷移和數(shù)據(jù)恢復(fù),需要的朋友可以參考下2024-04-04
MySQL數(shù)據(jù)實(shí)時(shí)同步Redis的方案全解析
Canal通過解析MySQL的binlog,實(shí)現(xiàn)數(shù)據(jù)增量同步到Redis,保持?jǐn)?shù)據(jù)一致性,核心工作原理是Canal偽裝成MySQL從庫,模擬從庫交互,獲取并解析binlog,然后更新到Redis,該方案對(duì)業(yè)務(wù)侵入小,適用于實(shí)時(shí)數(shù)據(jù)同步場景,本文介紹MySQL數(shù)據(jù)實(shí)時(shí)同步Redis的方法,感興趣的朋友一起看看吧2025-12-12

