FEDERATED存储 引擎的功能与oracle的DBLINK基本类似,主要用来提供对远程mysql服务器 上面的数据的访问接口,默认情况下面,mysql是不启用该存储 引擎的,如下
mysql> show engines;
从上面可以看到FEDERATED的Support是NO,说明没有启用,如果没有的话说明没有编译进去,需要重新安装,要像启用的话使Support为YES,可以在/etc/my.cnf加federated(在mysqld加),然后重启就可以启用
配置很简单
1、在本地数据库上做如下操作
CREATE TABLE `game_broker`( `ID` int(11) NOT NULL AUTO_INCREMENT, `brokerid` varchar(10) NOT NULL COMMENT '券商id', `broker_name` varchar(20) NOT NULL COMMENT '名称', `father_id` int(11) NOT NULL COMMENT '父ID', `path` varchar(20) NOT NULL COMMENT 'id路径', `remark` varchar(100) COMMENT '备注', PRIMARY KEY (`ID`) ) ENGINE=FEDERATED CHARSET=utf8 CONNECTION='mysql://dasai_fed:[email protected]:3306/mysql/game_broker';
2、在远程表上做操作
CREATE TABLE `game_broker` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `brokerid` varchar(10) NOT NULL COMMENT '券商id', `broker_name` varchar(20) NOT NULL COMMENT '名称', `father_id` int(11) NOT NULL COMMENT '父ID', `path` varchar(20) NOT NULL COMMENT 'id路径', `remark` varchar(100) COMMENT '备注', PRIMARY KEY (`ID`) ) EENGINE=InnoDB DEFAULT CHARSET=utf8;
3、在远程表所在的mysql数据库上添加一个账号
grant select on mysql.game_broker to dasai_fed@'172.31.1.106' identified by 'daisai_fed';
4.操作2中的表数据,创建完成之后,你会神奇的发现你当前创建的这个表中已经有远程表里面的所有数据了。