MySQL 打开federated存储引擎

时间:2022-10-21 22:21:30
                 本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来实现. 有点类似Oracle中的 数据库链接(DBLINK).首先在源数据库执行命令show engines,结果如下图: MySQL 打开federated存储引擎
此时的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查询,
MySQL 打开federated存储引擎
此时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 ,取出来的就是远程数据库的数据了。