从服务器A staff表 更新到 服务器B staff表
1、检查服务器A上的mysql是否支持fedrated数据引擎
mysql> show engines;
查看mysql的 FEDERATED 数据引擎 Support选项
配置my.ini文件。
[mysqld]
federated #添加该属性
skip-federated #打开该属性
2、在服务器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'
3、在服务器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;
4、同步的总思路:
通过 federated 数据引擎实现跨服务器数据同步,加上触发器就可以自动同步。
数据 -> 触发器 -> fed表 -> 远程服务器