Mysql 跨服务器表数据同步的实现

1 篇文章 0 订阅
1 篇文章 0 订阅

Mysql 跨服务器表数据同步的实现

今天在做项目的时候突然接到一个这样的需求。

有两个数据库(数据库A和数据库B)分别部署在两个不同的服务器上。当数据库A里的数据发生改变时,数据库b里的数据要同步变化。

在这里记录一下小编是怎么做的。当然解决这个问题的办法应该不止一个。小编这个方法只是其一。

第一步

通过以下sql语句查看一下mysql是否安装了federated插件:

show engines;

在这里插入图片描述

在查出来的结果中找到“FEDERATED”,查看一下后面的值是“yes”还是“no”。
如果是“yes”,说明已经安装过插件,如果是“no”,请执行下面的sql语句进行安装。

install plugin federated soname ‘ha_federated.so’;

第二步

找到你计算机上mysql的my.ini配置文件,在[mysqld]最后添加federated即可;添加完成,重启mysql服务再次查询该引擎状态为YES即可。

第三步

在数据库A所对应的服务器上创建桥接表.表名与数据库b中需要同步的表名一致。sql如下:

CREATE TABLE `桥接表名` (
。。。字段信息。。。
) ENGINE = FEDERATED AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 CONNECTION = "mysql://用户名:密码@服务器B的ip地址:端口号/数据库名/表名"

第四步

在数据库A所对应的服务器上创建触发器,sql如下(本文以插入触发为例):

DELIMITER $
CREATE TRIGGER 触发器名称
	after
	insert ON 数据库A上的表名
	FOR EACH ROW
	begin
	  insert into 桥接表名(字段信息) VALUES(数据库A上表字段信息);
	end$

第五步

先执行第三步的sql再执行第四部的sql。然后修改数据库A中表的数据,数据库B中表的数据会发生相同的变化。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值