從服務器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表 -> 遠程服務器