一、binlog是啥

binlog是mysql自带的记录日志,可用于数据库操作查看,集群间的数据同步等。

二、如何开启

找到mysql安装目录,打开目录下的my.ini文件。
	内容如下(截取部分):
[client]
port=3306
[mysql]
default-character-set=latin1
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/serviceapk/mysql/"
#Path to the database root
datadir="D:/serviceapk/mysqltabledata/"

mysql默认是不开启binlog的,只需在对应文件下的 [mysqld] 后加入加入如下语句:

[mysql]
#日志保存位置,5.5版本不生效 默认与表空间同一目录
log_bin=mysql-bin
#binlog的格式也有三种:STATEMENT,ROW,MIXED。
binlog-format=mixed
#binlog过期清理时间
expire_logs_days=3
#binlog每个日志文件大小
max_binlog_size=100m
#binlog缓存大小
binlog_cache_size=10m
max_binlog_cache_size=512m
#发生事务时非事务语句的缓存的大小
binlog_stmt_cache_size=100m
max_binlog_stmt_cache_size=100m

加入后重启服务即可生效,可通过

show variables like '%bin%';

指令查看日志配置情况:

使用mysqlbinlog出现mysqlbinlog: [ERROR] unknown variable

也可通过 show binlog events; 查看日志记录情况,一般不会在控制台用
也可通过 show status; 指令查看内存等运行状态

也能在指定文件夹下看到如下文件:

使用mysqlbinlog出现mysqlbinlog: [ERROR] unknown variable