August 16, 2021

如何在MariaDB主从模式执行从库触发器

在默认设置下,从库不会自动执行触发器。如何解决这个问题?

MariaDB设置项目slave_run_triggers_for_rbr,官方文档:Running Triggers on the Slave for Row-based Events - MariaDB Knowledge Base。可通过以下两种方式进行配置:

  1. 可在 mariadb 的 config 文件中添加 slave_run_triggers_for_rbr = YES
  2. 执行 sql 命令 set global slave_run_triggers_for_rbr = 'YES'。这个方式的缺点是 mariadb 重启后可能失效

slave_run_triggers_for_rbr 的4种值

Value Meaning
NO (Default) 不执行基于行事件的触发器
YES 执行基于行事件的触发器,但不记录到二进制日志中
LOGGING 执行基于行事件的触发器,并记录到二进制日志中
ENFORCE 仅10.5.2版本可用,从库强制执行触发器