当前位置: 代码网 > it编程>数据库>Mysql > 开启mysql的binlog日志步骤详解

开启mysql的binlog日志步骤详解

2025年02月13日 Mysql 我要评论
mysql版本5.71.查看是否开启bin_logshow global variables like'log_bin';off的话需要先开启在mysql的文件夹目录中找到my.ini

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:结合rowstatement,根据情况选择最合适的模式。
  • 指定日志文件大小

    [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日志内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com