为什么在主表上创建的过程/函数即使在启用了使用“replicate table”的表过滤器之后也会被复制为从属程序。这在生产设置中造成了许多问题,因为它用主服务器中修改的函数重写了从服务器中的函数。我需要在主和从中有两个不同的函数,只需要复制表数据。请解决这个问题
如何重复:在母版中创建表
使用复制做表选项将表复制到从表。
在主服务器上创建一个函数
它以相同的名称重写了奴隶中已经存在的函数。
发布于 2020-06-11 16:07:06
因为在MySQL中,所有的输入和过程都存储在mysql
系统数据库中,而不是存储在定义它们的数据库中。因此,除非您将mysql
数据库排除在复制之外,否则您定义的函数和过程将在下游复制。
发布于 2020-06-11 16:35:49
如果不希望存储过程复制到“从”中,请在母版上运行以下命令:
SET sql_log_bin = 0;
DROP PROCEDURE ...
CREATE PROCEDURE ...
SET sql_log_bin = 1;
这将创建存储过程--主程序,但不将其记录在主的二进制日志中。由于过程创建不在二进制日志中,所以没有什么可复制的。
发布于 2020-06-11 18:12:26
如果可以将其转换为TRIGGER
,那么您也许可以利用默认情况下不会复制的触发器。
https://dba.stackexchange.com/questions/268967
复制相似问题