需求:a服务器上的mysql数据库data表插入新数据时,需要同步到b服务器上的data表中。
解决:a服务器上开启federated引擎插件,创建data1对应b服务器上的data表。
在a服务器上的data表创建触发器,data表插入数据后执行触发器插入到a服务器上data1。此时查看b服务器上的data表,数据已同步过来。
1、查看mysql版本
2、下载安装MariaDB
把安装目录下MariaDB 10.4\lib\plugin的
ha_federated.dll
ha_federatedx.dll
复制到xampp\mysql\lib\plugin目录下
3、安装插件
install plugin federated soname 'ha_federatedx.dll';
4、
查看已安装的插件
show plugins;
查看是否已开启插件
show engines;
5、
在a服务器
创建data1表
DROP TABLE IF EXISTS `data1`;
CREATE TABLE `data1` (
`Id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`Id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='数据表' ENGINE = FEDERATED CONNECTION='mysql://用户名:密码@远程数据库ip:3306/远程数据库名/远程表名'
在a服务器data表增加触发器
drop trigger if exists insert_data1;
create trigger insert_data1
after insert on data
for each row
begin
INSERT INTO data1 (Id) VALUES (NEW.Id);
end;