用mysql的federated数据引擎和触发器实现跨服务器表数据同步
来源:互联网 发布:美国失业金数据公布 编辑:程序博客网 时间:2024/05/16 15:18
现有服务器A和服务器B,分别装有mysql数据库,存在同一个库名的数据库,并且库中有相同的表,2服务器可外网访问,要实现服务器A中数据库发生inset,update 时把响应到的数据记录同步到服务器B中的数据库中。
1, 检查mysql是否支持federated数据引擎,若不支持可能需要修改mysql配置文件;
2,增加mysql触发器,让触发器把数据同步到federated表中,这时该服务器federated 表会通过一个可访问B数据库的帐户把数据同步到B数据库表中;
-- 查看开启的储存引擎
SHOW ENGINES;
-- 若没有federated 引擎需要配置my.ini 文件。
--在[mysqld]后面直接加federated,并且注释掉skip-federated(前面加#)
<strong>-- 创建federated引擎表</strong>我们用用户表user实例
CREATE TABLE `fed_user` ( `uid` BIGINT(20) NOT NULL AUTO_INCREMENT, `user_name` 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://triggeruser:123456@192.168.1.2:3306/db_name/table_name';
ENGINE=FEDERATED CONNECTION='mysql://triggeruser:123456@192.168.1.2:3306/db_name/table_name';
关键是这一行,其中triggeruser为访问另外一台服务器上mysql的用户名,后面123456是密码。先要保证这个帐户可以访问到192.168.1.2这台服务器的mysql。
当然要注意3306这个端口。若不能访问看下是不是没有这个帐户在当前服务器ip下的访问权限。比如当前服务器是192.168.1.3,就要看下192.168.1.2 是不是
允许192.168.1.3通过triggeruser这个用户名和123456这个密码在3306端口访问。
创建触发器:(触发器具体方法可以百度下)
DELIMITER $$CREATE TRIGGER `user_insert_trigger` AFTER INSERT ON `user` FOR EACH ROW BEGIN -- 插入数据 INSERT INTO `fed_user`(`uid`, `user_name`, `user_pwd`, ) VALUES (new.`uid`, new.`user_name`, new.`user_pwd`, ); END;$$DELIMITER ;
其中user_insert_trigger 是触发器名,after insert on 是在插入表格之前触发,new.是插入之前的值,old.是数据完成之后的值,若是insert就是插入,若是update是就更新之后的值。
这个同步的总思路就是通过federated 数据引擎实现跨服务器数据同步,加上触发器就是自动同步。
数据-》触发器-》fed表-》另外的服务器
- 用mysql的federated数据引擎和触发器实现跨服务器表数据同步
- federated存储引擎实现跨服务器的数据访问
- federated存储引擎实现跨服务器的数据访问
- mysql 通过federated引擎 跨服务器访问数据
- MySQL触发器实现表数据同步
- Mysql的跨服务器 关联查询--Federated引擎
- 触发器实现两台服务器数据同步
- mysql 用FEDERATED引擎实现DBLINK
- Oracle数据库触发器实现数据的备份和同步
- mysql数据库上的链接服务器-Federated引擎
- mysql数据库上的链接服务器-Federated引擎【转】
- mysql数据库上的链接服务器-Federated引擎
- mysql数据库上的链接服务器-Federated引擎
- MySQL FEDERATED引擎的使用
- 用触发器实现数据简单同步
- 数据同步,可以用触发器来实现
- MYSQL跨服务器同步数据
- mysql实现类似于oracle dblink的功能/开启Federated引擎
- python常见编译错误:IndentationError缩进错误
- 获得网络视频缩略图并且播放
- SQLite3的使用
- asp.net之简易聊天室
- Java线程池
- 用mysql的federated数据引擎和触发器实现跨服务器表数据同步
- ETS的配置
- iOS图片选择的优化与封装
- FMDB的使用
- 洛谷2622 关灯问题II
- (NO.00002)iOS游戏精灵战争雏形(七)
- jsp的内置对象有下列这些
- 洛谷2633 王后万岁
- 一个轻量级的c编写的php接口平台框架