mysql 5.5开启binlog
环境
- docker容器,系统 ubuntu;mysql 5.5
- 配置文件:/etc/mysql/my.cnf
添加代码
[mysqld]
# binlog
datadir=/etc/mysql/data # 数据目录,注意在整个配置文件中有没有 重复指定
# 启用binlog,设置日志文件的基础名称,比如:mysql-bin.000007,
# 会默认生成mysql-bin.index
log-bin=mysql-bin
server-id=1 # 指定一个唯一的服务器ID,用于复制
binlog_format=ROW # 选择binlog格式,ROW, STATEMENT或MIXED,ROW是推荐的
expire_logs_days=30
max_binlog_size=1024M
重启mysql服务, 然后查看是否开启binlog服务:
show variables like 'log_%';
SHOW VARIABLES LIKE 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
产生的文件在 datadir = /var/lib/mysql 配置的目录下:
root@70231afa3b8f:/# cd /var/lib/mysql
root@70231afa3b8f:/var/lib/mysql# ls
mysql-bin.000002 mysql-bin.000006
mysql-bin.000003 mysql-bin.000007
mysql-bin.000004 mysql-bin.index
- 错误示例:
log_bin=ON
server-id=1 # 指定一个唯一的服务器ID,用于复制
log_bin_basename=D:\Program Files (x86)\mysql-5.7.43-winx64\data\log_bin
log_bin_index=D:\Program Files (x86)\mysql-5.7.43-winx64\data\log_bin\bidding_anwen.index
这种写法我在以上的环境中配置启动失败,查资料说他们都是相同,但linux环境试了后报错,需要在windows环境下试一下是否可行,还有一个就是版本问题。
补充:经查,错误示例的配置完全不标准,应该按照上面标准的配置来写,log_bin_basename和log_bin_index我们应该依赖于datadir这项的配置。