从服务器A staff表 更新到 服务器B staff表mysql
一、检查服务器A上的mysql是否支持fedrated数据引擎sql
mysql> show engines;服务器
查看mysql的 FEDERATED 数据引擎 Support选项ui
配置my.ini文件。blog
[mysqld]ip
federated #添加该属性同步
skip-federated #打开该属性table
二、在服务器A上建立federated引擎表,该引擎表与服务器B上要更新的表结构相同配置
mysql> CREATE TABLE `fed_user` (密码
`uid` BIGINT(20) NOT NULL AUTO INCREMENT,
`USER` char(17) DEFAULT NULL COMMENT '用户名',
`user_pwd` char(32) DEFAULT NULL COMMENT '密码',
PRIMARY KEY (`uid`)
UNIQUE KEY `user_name` (`user_name`)
) ENGINE=FEDERATED CONNECTION='mysql://user:password@ip:port/db_name/table_name'
三、在服务器A 上建立基于staff表的触发器
mysql>
DELIMITER $$
CREATE
TRIGGER `trigger_name` AFTER INSERT ON `user`
FOR EACH ROW BEGIN
-- 插入数据
INSERT INTO `fed_user`(
`uid`
`username`
`password`
) VALUES (
new.`uid`
new.`username`
new.`password`
);
END;
$$
DELIMITER;
四、同步的总思路:
经过 federated 数据引擎实现跨服务器数据同步,加上触发器就能够自动同步。
数据 -> 触发器 -> fed表 -> 远程服务器