MySql binlog配置

如果你的数据库要进行主从复制,就必须要配置binlog。

需要在my.cfg(/etc/my.cnf)里添加:

[mysqld]
#binlog日志名称前缀
log-bin=mysql-bin
#默认值未0,如果使用默认值则不能和从节点通信,这个值的区间是:1到(2^32)-1
server-id=1

配置后,重启服务器!验证binlog是否配置成功:

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.01 sec)

查看binlog记录:

 show binlog events \G;
*************************** 1. row ***************************
   Log_name: mysql-bin.000001
        Pos: 4
 Event_type: Format_desc
  Server_id: 1
End_log_pos: 124
       Info: Server ver: 8.0.13, Binlog ver: 4
*************************** 2. row ***************************
   Log_name: mysql-bin.000001
        Pos: 124
 Event_type: Previous_gtids
  Server_id: 1
End_log_pos: 155
   Info: 

如果是使用innodb作为存储引擎,而要最好的一致性和持久,需要在my.cnf添加:

#每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认
innodb_flush_log_at_trx_commit=1 
#默认:0,表示MySQL不控制binlog的刷新,由文件系统自己控制它的缓存的刷新,如果这期间服务器crash,则会丢失部分数据,性能最高,
#如果配置为1,则表示每次事务提交都会刷新到磁盘,最安全,性能损耗较高
sync_binlog=1

你可能感兴趣的:(mysql)