我想在某些mysql(或mariadb)表(innodb)更新,插入或删除时发生通知。如何订阅更新,删除和插入一个MySQL表?
我需要尽快跟踪从另一个过程中,这些变化,
我想也许我可以订阅MySQL的二进制日志? 有人可以解释如何做到这一点? 是否有例如mysql提供的日志读取API?
该游戏是否变化,当我使用一个加莱拉集群?
我想在某些mysql(或mariadb)表(innodb)更新,插入或删除时发生通知。如何订阅更新,删除和插入一个MySQL表?
我需要尽快跟踪从另一个过程中,这些变化,
我想也许我可以订阅MySQL的二进制日志? 有人可以解释如何做到这一点? 是否有例如mysql提供的日志读取API?
该游戏是否变化,当我使用一个加莱拉集群?
您可以使用mysqlbinlog可以与--stop-从来没有选项来获取所有插入,更新和删除语句(mysqlbinlog documentation)。
您可以使用C++库MySQL Replication Listener是基于二进制日志的API。
TRIGGER
s为这里你的朋友。 From MySQL-Doc:
A trigger is defined to activate when a statement inserts,
updates, or deletes rows in the associated table
查看MySQL-Doc here,也有一些例子。
我不知道这是否会帮助你,但我喜欢用一个单独的表来跟踪变化。如果我有一个名为“site_visitors”的表格,我会创建另一个名为“site_visitors_log”的表格,在将数据插入“site_visitors”后立即写入我需要的信息(IP地址,时间戳记等)。很方便。
再次思考这个问题。由于我处于另一个进程中,并且此进程可能会崩溃,所以我认为订阅二进制日志是唯一可行的方法.... – jack 2014-10-17 05:46:16