mysql基于FEDERATED引擎实现远程表同步

MySQL基于FEDERATED引擎实现不同服务器表数据同步

前提说明:

   两个数据库test01 与 test。以下语句运行环境是在test01中(即本地库),test(远程库,需要随test01表中的数据更新、新增、删除动态变化的库)。

步骤:

1、在test01中执行命令

show ENGINES; 查看是否支持FEDERATED引擎。

 

如果是yes,则表示当前数据库支持该引擎,如果为no则需要配置该引擎,然后重启。

2、修改对应表的存储引擎,即将InnoDB引擎修改为FEDERATED引擎。
以下是navcat中修改存储引擎的步骤。

①、右键设计表

②、点击选项,链接参数类似

mysql://用户名:密码@ip:端口/数据库/目标表

例子:mysql://root:123456@43.138.184.211:3306/test/user

 

3、对将要动态远程更新的表创建触发器。(增、删、改三种类型的触发器)

            说明:test01本地库,test远程库,user表名

-- 新增触发器

drop trigger if exists insert_user;

create trigger insert_user

       after insert on user

for each row

begin

       insert into test.user

       values(test01.user);

end;                                     

-- 删除触发器

drop trigger if exists delete_user;

create trigger delete_user

       after delete on user

for each row

begin

       delete from test01.user where id=test.id;

end;

-- 修改触发器

drop trigger if exists update_user;

create trigger update_user

       after update on user

for each row

begin

       update test.user as u set u.name = test01.name , u.phone = test01.phone where u.id=test01.id;           -- 此处的sql需要更具表来动态编写字段。

end;

如果有多个表都需要进行远程同步,则需要为每个表都创建触发器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值