注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

Mysql安装federated存储引擎创建远程表  

2017-05-27 11:51:15|  分类: Mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
MySQL中针对不同的功能需求提供了不同的存储引擎。所谓的存储引擎也就是MySQL下特定接口的具体实现。federated就是其中一个专门针对远程数据库的实现。一般情况下在本地数据库中建表只会在数据库目录中生成相应的表定义文件,并同时生成相应的数据文件,但实际还是通过存在于远程数据库中。看着这个定义,感觉是不是跟Oracle的database link(数据库链接)非常相似,所实现的功能也和db link类似,要在MySQL下找寻db link替代品的,federated存储引擎就是不二的选择。
当然,安装federated存储引擎也有两个前提条件:
a)mysql版本需要5.1以上;
b)在安装是需要把federated引擎已经安装;
在不确定Mysql是否已经启用该引擎的情况下,可以使用如下命令察看:

show engines;

一般的返回结果是:
Mysql安装federated存储引擎创建远程表 - sinsunson - 天朝布衣田中码农参上
1)如果没有上图所示红线那行,就说明没有开启,需要按如下步骤进行配置【首先利用mysql客户端执行如下脚本,如是Window版本可跳过此步骤】。

SQL>install plugin federated soname 'ha_federated.so';

2)紧接着配置下my.cnf或my.ini中[mysqld]标签下下直接加上一行:

federated

3)重启mysql,让引擎生效

#service mysqld restart

4)创建远程表【与一般建表脚本一样,只是指定了引擎及连接】:

CREATE TABLE test (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
name varchar(255) not null,
PRIMARY KEY (`id`)
) ENGINE=FEDERATED CONNECTION='mysql://test:123@593668.com:3306/test/tablename'

是不是一样,唯一的不同,就是要指定引擎及连接。
好了,做到这里基本上就可以说大功告成了,但是还是有一些情况需要注意下:
I)本地的表结构必须与远程的表结构一样。
II)远程数据库目前仅限MySQL
III)不支持事务
IIII) 不支持表结构修改,如果要改,两边都需要改的。
此外,如果第一步中执行报错:那么就必须考虑重新手工编译Mysql,加入如下选项。

./configure ... --with-plugins=federated

从5.1.26开始,MySQL已经默认不启用federated存储引擎,所以才需要在my.cnf中加入federated选项或是在命令行用--federated选项启动mysqld。
  评论这张
 
阅读(0)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017