MySQL复制-触发器不会复制到从属服务器

MySQL复制-触发器不会复制到从属服务器,mysql,triggers,replication,replicate,Mysql,Triggers,Replication,Replicate,好的,这是我的设想 服务器运行主数据库,每个站点的其他数据库也在服务器上。 将更新写入主数据库,触发器将该记录插入特定站点的相关数据库,该站点将复制到站点数据库级别 触发器工作正常,但插入的记录无法进入从属数据库。我使用的是基于语句的复制,因为基于行的复制不是一个选项。我还尝试调用一个存储过程并将其作为一个事件来执行,但没有任何结果 有没有办法解决这个问题?顺便问一下,我正在使用MySQL 5.1 谢谢 下面是触发器的语法 dbmaster=服务器主数据库 dbsite=服务器站点数据库(这是复

好的,这是我的设想

服务器运行主数据库,每个站点的其他数据库也在服务器上。 将更新写入主数据库,触发器将该记录插入特定站点的相关数据库,该站点将复制到站点数据库级别

触发器工作正常,但插入的记录无法进入从属数据库。我使用的是基于语句的复制,因为基于行的复制不是一个选项。我还尝试调用一个存储过程并将其作为一个事件来执行,但没有任何结果

有没有办法解决这个问题?顺便问一下,我正在使用MySQL 5.1

谢谢

下面是触发器的语法

dbmaster=服务器主数据库 dbsite=服务器站点数据库(这是复制主机)

发件人:

B.5.12:触发器是否与复制一起工作

对。但是,它们的工作方式取决于您是否正在使用 MySQL的“经典”基于语句的复制在所有 MySQL版本,或中引入的基于行的复制格式 MySQL 5.1

使用基于语句的复制时,从机上的触发器是 由在主机上执行(和复制)的语句执行 给奴隶)

使用基于行的复制时,不会在上执行触发器 由于在主服务器上运行的语句而导致从服务器,然后 复制到从机。相反,在使用基于行的复制时, 将应用在主机上执行触发器引起的更改 在奴隶身上


因此,您需要触发触发器的语句复制到从属服务器,并且您需要在从属服务器上创建重复的触发器,以应用相同的更新来响应这些语句。

但是如果dbmaster在站点级别上不存在,这会起作用吗??他们只使用dbsiteTrigger,不必精确匹配。根据复制的语句,根据需要修改它以完成所需的更新。很抱歉,我不太明白-如果我们以上面的触发器为例,在站点级别,我有我的数据库dbsite和我的exchange表-这里我的触发器语法是什么,与上面相同?再次感谢你在这方面的帮助顺便说一句,这并没有真正使我受益匪浅:(
delimiter # 
create trigger rstreplicate after insert on dbmaster.exchange 
for each row begin insert into dbsite.exchange 
select distinct new.TYPE, new.FILENAME, new.STATUS, new.USER_ID, new.INP_DATE, new.CHG_DATE from dbmaster.exchange where new.IP='127.0.0.1'; 
end# 
delimiter ;