文档章节

用mysql的federated数据引擎和触发器实现远程服务器表数据同步

史帝文
 史帝文
发布于 2017/08/14 22:31
字数 531
阅读 42
收藏 0

1,检查mysql是否支持federated数据引擎,若不支持可能需要修改mysql配置文件;
 -- 查看开启的储存引擎
 
   SHOW ENGINES;
  
   -- 若没有federated 引擎需要配置my.ini 文件。
   --在[mysqld]后面直接加federated,并且注释掉skip-federated(前面加#)

2,检查从库的权限及登录用户,密码能否使用。

3,在从库121.12.170.b 上创建一个表,这个最好在148.56.106.2的服务器使用远程mysql -uroot -h121.12.170.b登录来操作。

 CREATE TABLE `fed_user2` (  
  `uid` BIGINT(20) NOT NULL AUTO_INCREMENT,  
  `user_name` CHAR(17) DEFAULT NULL COMMENT '用户名',  
  `user_pwd` CHAR(32) DEFAULT NULL COMMENT '密码',  
  PRIMARY KEY (`uid`)  
) ENGINE=FEDERATED


4,在主库148.56.106.2 创建一个表

 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`) 
) ENGINE=FEDERATED CONNECTION='mysql://root:myroot@121.12.170.b:3306/maxhomSport/fed_user2';   


mysql://root:myroot@121.12.170.b:3306/maxhomSport/fed_user2 就是在148.56.106.2登录到121.12.170.b的3306端上的maxhomSport数据库的fed_user2表。

5,测试在148.56.106.2的服务器上的表fed_user上插入数据
INSERT INTO `maxhom_kaiyuan`.`fed_user` (`user_name`, `user_pwd`) VALUES ('aaaa', '111'); 
INSERT INTO `maxhom_kaiyuan`.`fed_user` (`user_name`, `user_pwd`) VALUES ('a2', '222'); 
INSERT INTO `maxhom_kaiyuan`.`fed_user` (`user_name`, `user_pwd`) VALUES ('a3', '3333'); 
刷新148.56.106.2的表,查看存盘是否成功。如果成功,在检查远程121服务器端的数据表fed_user2几个号否成功。
   uid  user_name  user_pwd  
------  ---------  ----------
     1  aaaa       111       
     2  a2         222       
     3  a3         3333      
 
按以上操作,检查是成功的。

6,反操作,向121服务器的表插入数据,检查148.56.106.2表的变动。 
在网络正常的情况,2边mysql都是start的情况下
148.56.106.2表有变化,121的表也有变化。2边的数据同步了
这个变化我有点想不通。
148.56.106.2是局域网,从121向148.56.106.2是ping不通的。但是在操作中121可以逆向写sql数据,很神奇。

7,断网人为制造故障测试 ,停121.12.170.b mysql下的服务器情况,向148.56.106.2的fed_user表插入数据。结果显示:
“Got error 10000 'Error on remote system: 2003: Can't connect to MySQL server on '121.12.170.b' (111)' from FEDERATED” 
结果为二边都不能插入数据。

       
       


 

© 著作权归作者所有

共有 人打赏支持
史帝文
粉丝 6
博文 56
码字总数 22088
作品 0
武汉
后端工程师
私信 提问
MySQL federated引擎 --- 实现类似oracle dblink功能

1.查看是否安装了federated引擎 show engines; 2.开启federated引擎 windows下在my.ini中加入federated,即可开启; linux中,需要编译时加入选项,再在my.ini中加入federated,方可开启. 3.建...

shaohan
2014/03/21
0
0
MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK.

1 引擎说明 本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来实现. 有点类似Oracle中的 数据库链接(DBLINK). 要允许这个存储引擎, 当构建MySQL时使用--with-...

SANSOM
2013/08/21
0
4
MySQL远程表访问设置

使用MySQL FEDERATED存储引擎,没有对表的本地数据文件(比如,没有.MYD文件)。取而代之地,一个远程数据库存储那些正常地应该在表中的数据。这使得MySQL客户端API来读,删除,更新和插入数...

鉴客
2012/04/26
4.4K
0
MySQL的FEDERATED引擎实现类Oracle的DBlink

随着业务的复杂度不断的增加、数据库不断的切分,在分布式系统中往往一台或几台数据库并不能满足我们的需求,所以常常需要多台同时时用,而在平时需要通过其它服务器的数据库获取信息最为方便...

往事_Jim_遗
2017/12/04
0
0
使用mysql federated引擎构建MySQL分布式数据库访问层(转)

使用mysql federated 引擎构建 MySQL 分布式数据库访问层 前言:随着应用复杂度的增加,数据库不断细化切分,导致应用程序中数据库应用就得复杂,凌乱。绝大部分程序人员可能都遇到这种情况,...

lilclimate
2013/08/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

值得收藏:一份非常完整的MySQL规范

一、数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命...

Java干货分享
30分钟前
3
0
VirtualBox中CentOS7主机适配器(Host-only Adapter)网络配置

最近使用 VirtualBox 安装 CentOS 7 虚拟集群环境,为实现主机网络访问虚拟机、虚拟机与虚拟机之间网络互访,VirtualBox 默认的 NAT 网络连接方式是肯定不能满足了,以前常用的桥接网络方式这...

calmsnow
32分钟前
2
0
TechDay公开课实录:PaddlePaddle车牌识别实战和心得

车牌识别作为一种常见的图像识别的应用场景,已经是一个非常成熟的业务了,在传统的车牌识别中,可以使用字符分割+字符识别的方式来进行车牌识别,而深度学习兴起后,出现了很多端到端的车牌...

深度学习之桨
54分钟前
3
0
关于SeekBar 拖动区域小的解决办法

//seekbarLayout 是seekBar对象statusSeekbar的父层布局seekbarLayout = mStatusViewLayout.findViewById(R.id.id_seekbar_layout);seekbarLayout.setOnTouchListener(new View.OnTouchL......

东街小霸王
今天
2
0
python实现下载网络视频资源

项目需求: 有时候我们做爬虫的时候,需要把爬取到的视频资源保存到我们本地,以防爬取的视频链接被原来资源主人变更,所以就需要把好不容易拿到的资源永久变为自己的,就需要把视频链接下载到我们...

银装素裹
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部