mysql版本5.7
1.查看是否开启bin_log
show global variables like'log_bin';
off的话需要先开启
在mysql的文件夹目录中找到my.ini
加一行log-bin="c:/programdata/mysql/mysql server 5.7/logs/log-bin"
并提前创建好目录
2.数据库会把日志放进logs目录中
3.查看log日志
show binary logs;
查看log-bin.000001文件指定时间的log
(要运行mysqlbinlog
命令,您需要在操作系统的命令行界面(例如windows的命令提示符或powershell,linux或macos的终端)中执行,而不是在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*/;
整理了下常用的配置项
启用二进制日志:
[mysqld] log_bin = mysql-bin
log_bin
指定了二进制日志文件的前缀名称。日志文件将以这个前缀开始,后跟一个数字后缀。设置日志格式:
[mysqld] binlog_format = row | statement | mixed
row
:每行变化都记录在日志中。statement
:记录执行的sql语句。mixed
:结合row
和statement
,根据情况选择最合适的模式。
指定日志文件大小:
[mysqld] max_binlog_size = 100m
max_binlog_size
指定了单个binlog文件的最大尺寸。当达到这个大小时,mysql将创建一个新的日志文件。二进制日志缓存大小:
[mysqld] binlog_cache_size = 32k
binlog_cache_size
指定了事务日志缓存的大小,用于row
格式的binlog。二进制日志索引文件:
[mysqld] log_bin_index = mysql-bin.index
log_bin_index
指定了二进制日志索引文件的名称,该文件记录了所有当前活跃和旧的binlog文件的位置。同步二进制日志到磁盘:
[mysqld] binlog_sync = 1
binlog_sync
控制何时将事务日志从缓存同步到磁盘。1表示每次事务后都同步,这会降低性能但确保数据安全。二进制日志过期天数:
[mysqld] expire_logs_days = 7
expire_logs_days
指定了binlog文件在被自动删除前可以保留的天数。最大二进制日志文件数量:
[mysqld] max_binlog_files = 100
max_binlog_files
指定了服务器将保留的最大binlog文件数量。当超过这个数量时,最旧的文件将被删除。启用gtid模式:
[mysqld] gtid_mode = on
gtid_mode
启用全局事务标识符(gtid),用于复制和恢复。启用自动位置同步:
[mysqld] log_slave_updates = 1
log_slave_updates
允许从服务器将复制的更新记录到自己的binlog中。
总结
到此这篇关于开启mysql的binlog日志的文章就介绍到这了,更多相关开启mysql的binlog日志内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论