这个用起来不麻烦的,
1) 首先确定B数据库是不是已经激活了federated存储引擎,
在mysql客户端用以下语句确定:
show storage engines,engine是federated的记录support字段是Yes就表示激活了;
不过默认情况下是没有激活的,需要在B启动时加--federated选项,或者在B的配置文件
mysqld区域添加一行federated,重启生效
2) B上定义跟A结构定义一样的表,建表语句稍微加一些特别的内容.
比如A上有表A_jia_xxx,定义语句如下:
CREATE TABLE A_jia_xxx (
id INT(20) NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL DEFAULT '',
other INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX name (name),
INDEX other_key (other)
)
ENGINE=MyISAM
DEFAULT CHARSET=latin1;
在B上定义表B_jia_xxx:
CREATE TABLE B_jia_xxx (
id INT(20) NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL DEFAULT '',
other INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX name (name),
INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://user:password@IP_A:port_A/db_name_a/A_jia_xxx';
测试了下Navicat for MySQL 发现里面也有同步这个功能。。。。不过还是几点不清楚。。
数据传输。。。我用数据传输功能把A库的jia表数据传输大B库的jia表。。发现数据真的成功了。。。可是应该是一次性的。。我想要想要实现的是实时同步。。
数据同步。。。我测试了下数据同步功能。。。选好两个数据库两个表后。。点开始。。一段长长的代码刷下来。。。。。。数据没有变化。。(我刚刚已经把A库的jia数据通过数据传输传给B的jia了)
两个问题:
1.这个数据同步是时时同步的吗??A库更新后 B库也会更新??
2.要一直开着Navicat for MySQL 才能实时同步吗 吗?? 作者: beingman 时间: 2012-6-24 20:51