# 查询 BINLOG 是否开启 show VARIABLES like 'binlog_%'; # 查询 BINLOG 格式 show VARIABLES like 'binlog_format'; # 查询 BINLOG 位置 show VARIABLES like 'datadir'; # 查看 master 正在写入的 BINLOG 信息 show master status; # 查询当前数据库中 BINLOG 名称及大小 show binary logs; # 开始一个新的binlog flush logs; # cmd进入mysql安装目录bin文件夹,执行导出 mysqlbinlog --no-defaults --base64-output=decode-rows -v --start-datetime="2022-01-01 00:00:00" --stop-datetime="2022-12-31 00:00:00" ../data/mysql-bin.000001 -r C:\Users\admin\Desktop\binlog-export.sql
--no-defaults 可以解决utf8mb4编码警告问题;
--base64-output可以将日志中base64文本解码;
此外,需要注意下日志文件的导入导出路径。
my.ini附录
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [mysqld] # 设置3309端口 port = 3309 # 设置mysql的安装目录 basedir=C:\\Program Files (x86)\\MySQL\\mysql-8.0.11-winx64 # 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错 datadir=C:\\Program Files (x86)\\MySQL\\mysql-8.0.11-winx64\\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数,这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 group_concat_max_len=4294967295character-set-server=utf8mb4 default-storage-engine=INNODB # 默认身份验证插件 default_authentication_plugin=mysql_native_password # 允许创建sql方法 log-bin-trust-function-creators=1 #定义了MySQL应该支持的sql语法,对数据的校验 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # This buffer is allocated when MySQL needs to rebuild the index in # REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE # into an empty table. It is allocated per thread so be careful with # large settings. sort_buffer_size=1M # 主库配置 server-id=1 #服务器 id,随意,但要唯一 log-bin=mysql-bin #二进制文件存放路径 sync_binlog=1 #确保binlog日志写入后与硬盘同步 binlog_format=row #bin-log日志文件格式,设置为MIXED可以防止主键重复 expire_logs_days=7 #设置二进制日志自动删除/过期的天数,避免占用磁盘空间。默认值为0,表示不自动删除