mysql 主从复制-配置文件说明

文件位置

配置文件位置/etc/my.cnf或/etc/mysql/my.cnf

配置文件内容

[mysqld]
# 标识机器id,在binlog中会记录此信息,在slave机器中也回记录对应的master主机server_id
server_id=1
# 主库配置
# binlog名称,表示开启binlog
log-bin=mysql-bin
# binlog忽略的库,可配置多个
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=information_schema
# binlog记录的库
binlog-do-db=mycattest
# binlog记录的记录类型 可选ROW/STATEMENT/MIXED
binlog-format=STATEMENT
#从库配置
#启用中继日志,中继日志名称
relay-log=mysql-relay

查询环境变量语句:show variables like '%relay%';

binlog-format参数说明

说明 优点 缺点
ROW 从数据层面记录变化 确保数据一致性 记录日志过多,且效率底例如批量更新会记录所有更新后的数据
STATEMENT 记录修改的SQL 节省空间,性能高 无法正确解析依赖上下文的环境变量,及数据库函数,例如@@hostname,UUID()等
MIXED 依据每条sql判断使用哪种模式记录日志 综合了两个模式优点尽量保证了数据一致性 增加了复杂性

企业场景如何选择binlog模式 1、互联网公司,使用MySQL的功能相对少(存储过程、触发器、函数) 选择默认的语句模式,Statement Level(默认) 2、公司如果用到使用MySQL的特殊功能(存储过程、触发器、函数) 则选择Mixed模式 3、公司如果用到使用MySQL的特殊功能(存储过程、触发器、函数)又希望数据最大化一直,此时最好选择Row level模式

Mixed切换为ROW模式记录场景

  • 当 DML 语句更新一个 NDB 表时;
  • 当函数中包含 UUID() 时;
  • 2 个及以上包含 AUTO_INCREMENT 字段的表被更新时;
  • 执行 INSERT DELAYED 语句时;
  • 用 UDF 时;
  • 视图中必须要求运用 row 时,例如建立视图时使用了 UUID() 函数;
  • 事物隔离级别较高时默认事物隔离级别为REPEATABLE-READ

参考资料

https://i4t.com/213.html https://www.cnblogs.com/zhoujinyi/p/5436250.html

上一篇:mariadb主从复制配置


下一篇:RISC-V MCU开发 (六):代码下载