在 MySQL >=5.6 中使用基于行的事件在 Slave 上运行触发器

Dan*_*chs 5 mysql mariadb mysql-5.6

我们希望有一个设置,其中从属具有主控上不存在的触发器,以便更新某些汇总表或运行特定的 udfs.sys

如果使用基于语句的复制,他们可以只在从属设备上创建所需的触发器。从站将运行二进制日志中的语句,这将导致触发器被调用。使用(建议的)基于行的引用:

如果在基于行的复制下,slave 应用触发器以及由它们引起的行更改,则更改实际上会在 slave 上应用两次,从而导致 master 和 slave 上的数据不同。

https://dev.mysql.com/doc/refman/5.6/en/replication-features-triggers.html

有没有办法只使用基于行的复制在从属上运行触发器,类似于mariaDB 所拥有的

小智 0

也许相反,您需要在从属设备上有一个存储过程,您可以从 cron 作业 mysql -e "call sp_udfs" 运行该存储过程来跨表进行处理以更改该数据。默认情况下,事件在从站中禁用 您可以使用该方法做很多工作。通过这种方式,您可以比触发器更好地控制其行为。其他好处,您可以运行您希望的任何形式的复制,行、语句或混合