此时的FEDERATED的support值为“NO”,说明没有开启,Support 的值有以下几个:
YES |
支持并开启 |
DEFAULT |
支持并开启 , 并且为默认引擎 |
NO |
不支持 |
DISABLED |
支持,但未开启 |
参考一下在windows下的解决办法,找到MYSQL的安装目录C:\Program Files\MySQL\MySQL Server 5.6里的my.int文件,可能没有,就把my-default.ini文件复制一个改名为my.int,然后在my.int文件里的[mysqld]下面加一行federated,保存,重启mysql服务,再用命令show engines查询,
此时FEDERATED的support变为YES了,然后在源数据库建个和目标数据库表(或视图)结构一样的表, CREATE TABLE federated_table (
id int(20) NOT NULL auto_increment,
name varchar(32) NOT NULL default '',
other int(20) NOT NULL default '0',
PRIMARY KEY (id),
KEY name (name),
KEY other_key (other)
) ENGINE=FEDERATED CONNECTION='mysql://username:password@remote_host:3306/db_name/table_name';
然后就可以在源数据库执行select * from federated_table ,取出来的就是远程数据库的数据了。