您的位置:首页 > Web前端

MySQL 打开federated存储引擎

2015-08-12 19:35 465 查看
         

       本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来实现. 有点类似Oracle中的

数据库链接(DBLINK).首先在源数据库执行命令show engines,结果如下图:

此时的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 ,取出来的就是远程数据库的数据了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: