首页 > 数据库 >MySQL主从复制无法同步删除操作吗?【转】

MySQL主从复制无法同步删除操作吗?【转】

时间:2023-10-18 17:26:30浏览次数:23  
标签:主库 主从复制 同步 删除 触发器 MySQL 操作

简介

在MySQL主从复制中,当主库执行删除操作时,从库并不会同步删除对应的数据。这是由于MySQL的复制机制决定的。为了解决这个问题,我们可以通过在主库上创建触发器来实现删除操作的同步。

解决方案概览

下面是解决方案的整体流程图:

 

创建触发器

首先,我们需要在主库上创建一个触发器,该触发器会在删除操作执行后被触发,并将删除操作同步到从库。下面是创建触发器的步骤:

步骤 说明
1、进入MySQL客户端 | 使用命令行或者可视化工具进入MySQL客户端
2、选择主库 | 使用USE语句选择要创建触发器的主库
3、创建触发器 | 使用CREATE TRIGGER语句创建触发器,具体代码如下:

CREATE TRIGGER sync_delete_to_slave AFTER DELETE ON table_name
FOR EACH ROW
BEGIN
DELETE FROM table_name WHERE primary_key = OLD.primary_key;
END;

其中,table_name是要同步删除操作的表名,primary_key是表的主键。

主库执行删除操作

接下来,我们需要在主库上执行删除操作,这样触发器才会被触发。你可以使用任何你熟悉的删除数据的方式,比如使用DELETE语句。具体代码如下:

DELETE FROM table_name WHERE primary_key = 'xxx';

其中,table_name是要删除数据的表名,primary_key是要删除数据的主键值。

触发器生效

当主库上的删除操作执行后,触发器会被触发,将删除操作同步到从库。触发器的代码中,会执行一个删除操作,删除从库上与主库删除的数据相同的记录。

同步删除操作到从库
在MySQL主从复制的机制下,主库上的删除操作是无法自动同步到从库的。但是通过创建触发器,我们可以在主库上执行删除操作后,将删除操作同步到从库。

总结

通过创建触发器,在主库执行删除操作后,实现了将删除操作同步到从库。这样就解决了MySQL主从复制无法同步删除操作的问题。这个解决方案可以应用于任何需要同步删除操作的场景。

希望本篇文章对于刚入行的小白能够帮助,更好地理解和解决MySQL主从复制中的同步问题。
-----------------------------------

转自
©著作权归作者所有:来自51CTO博客作者mob649e81593bda的原创作品,请联系作者获取转载授权,否则将追究法律责任
mysql主从复制无法同步删除操作吗?
https://blog.51cto.com/u_16175453/7341437

 

标签:主库,主从复制,同步,删除,触发器,MySQL,操作
From: https://www.cnblogs.com/paul8339/p/17772877.html

相关文章

  • mysql主从复制-重做从库
    mysql主从复制-重做从库在主服务器执行查看从节点的数量SHOWSLAVEHOSTS;+-----------+------+------+-----------+--------------------------------------+|Server_id|Host|Port|Master_id|Slave_UUID|+-----------+------+-----......
  • Mysql 连接池配置问题
     使用SglSugar BulkCopy方法进行大批量插入时一直报错,检查了实体、数据库字段属性都无异常,最后发现数据库连接中配置了 AllowZeroDatetime=true;ConvertZeroDateTime= true;注释后异常解决。  AllowZeroDatetime=true,可以解决的是Mysql中datetime默认值为0000-00......
  • MySQL 是怎么加锁的
    MySQL是怎么加锁的什么SQL语句会加行级锁?普通select不会加锁,除非是串行化隔离等级。但是select...forupdate或者select...lockinsharemode加锁,统称为锁定读。还有updatedelete语句也会加锁行级锁有哪些种类?三种,分别是recordlock,gaplock,next-keylockrecordloc......
  • debian12安装mysql5.7
    出于某些原因,不得不捏着鼻子在debian12上安装mysql5.7这里下载debian格式的包,选第一个bundle的安装步骤sudogdebi-nxxx安装的顺序commoncommon-clientclientcommon-serverserver......
  • mysql 运行没错,在mybatis中报错 druid 报错 syntax error, expect RPAREN, actual
    您遇到的问题可能是由于Druid版本较旧导致的。在Druid 1.0.19中,对于某些语法结构的处理存在一些限制和问题。针对您的具体情况,可以尝试以下解决方案:1. 确保SQL语句的括号匹配正确。错误消息"expect RPAREN, actual IDENTIFIER DAY"表明Druid期望一个右括号(RPAREN),但实际上......
  • MySQL 8.0.34 tar包安装踩坑记录
    环境概述操作系统:Centos7.9MySQL版本:8.0.34错误提示[[email protected]]#/soft/mysql/bin/mysqld--initialize--user=mysql--basedir=/soft/mysql--datadir=/soft/mysql/data/soft/mysql/bin/mysqld:/lib64/libstdc++.so.6:version`CXXABI_1.3.11'not......
  • 新手教程系列:如何还原群晖 Synology NAS 意外删除或丢失的文件?
    有多种工具可恢复从群晖SynologyNAS意外删除的数据。首先建议为每个共享文件夹启用回收站选项。还有其他备份解决方案或第三方软件可用于替代回收站或与回收站结合使用。本文将指导您完成在群晖DSM上启用回收站,并向您介绍一些备选选项,以帮助您恢复已删除的文件。使用回收站......
  • linux centos7 安装mysql
    home目录下新建安装包存放位置cdhomemkdirinstall_packetcd/home/install_packet下载mysql5.7rpm源wgethttp://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm安装下载好的rpm包rpm-ivhmysql57-community-release-el7-8.noarch.rpm安装mysqly......
  • 【MySQL】DATE_FORMAT,DATE_ADD函数用法
    一、示例1select*frombi.testwhereDATE_FORMAT(UPDATE_TIME,'%Y-%m-%d')='2023-09-11';当然 '%Y-%m-%d'是可以根据实际需求调整的  二、示例22.1给时间增加一小时UPDATEbi.testSETUPDATE_TIME=DATE_ADD(UPDATE_TIME,INTERVAL1HOUR);2.2给时间减少......
  • docker 删除已停止的容器
    docker删除已停止的容器根据容器的状态,删除Exited状态的容器#根据容器的状态,删除Exited状态的容器sudodockerrm$(sudodockerps-qfstatus=exited)删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)dockerrm$(sudodockerps-a-q)查询所有的容器......