文档章节

本地MySQL数据库要访问远程MySQL数据库的表中的数据的实现

史帝文
 史帝文
发布于 2017/01/21 18:00
字数 869
阅读 28
收藏 0

1.实现基本思路:借助 MySQL的 federated 存储引擎实现 

federated 存储引擎简单介绍 :federated 是其中一个专门针对远程数据库的实现。一般情况下在本地数据库中建表会在数据库目录中生成相应的表定义文件,并同时生成相应的数据文件。 但通过federated 引擎创建的表只是在本地有表定义文件,数据文件则存在于远程数据库中

2.查看当前数据库服务是否支持 federated引擎 ,使用命令“ show engines ”命令查看 ,如下图:

"show engines "命令展示结果,简单介绍 :

第一列 :名称为 Engine,表示 存储引擎名称 

第二列 :Support,表示当前数据库服务是否支持所对应的存储引擎 ,一般情况 Support有以下几个值:

 

YES 支持并开启
DEFAULT 支持并开启, 并且为默认引擎
NO 不支持
DISABLED 支持,但未开启

有上图可以看出,当前数据库服务不支持federated引擎 ,需要手动配置使  当前数据库服务支持federated引擎 

3.配置federated数据库存储引擎 :

 

(1)windows 系统配置 :

windows下在my.ini中加入federated,重新启动数据库服务即可开启;

(2)Linux系统配置:

在my.cnf文件中的mysqld选项中配置 federated ,重新启动数据库服务即可开启;

4.配置数据库远程访问数据:

(1)实用show engines 命令检查数据库是否已经支持federated引擎 

(2) 远程数据库表结构 

 

  1. CREATE TABLE IF NOT EXISTS `isa_ywxx` (  
  2.   `ywid` int(11) NOT NULL auto_increment COMMENT '主键自动增长',  
  3.   `ywbh` varchar(10) NOT NULL COMMENT '业务编号',  
  4.   `ywmc` varchar(20) NOT NULL COMMENT '业务名称',  
  5.   `ywbz` varchar(30) default NULL COMMENT '备注信息',  
  6.   PRIMARY KEY  (`ywid`)  
  7. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='业务信息表' AUTO_INCREMENT=4 ;  
  8.   
  9. --  
  10. -- 转存表中的数据 `isa_ywxx`  
  11. --  
  12.   
  13. INSERT INTO `isa_ywxx` (`ywid`, `ywbh`, `ywmc`, `ywbz`) VALUES  
  14. (1, '01', '综合业务', '综合业务'),  
  15. (2, '02', '对公业务', '对公业务'),  
  16. (3, '03', 'VIP业务', 'VIP业务');  

(3) 给远程数据库服务添加一条数据库登录用户信息 ,信息如下 :

  1. grant select on hrkip.isa_ywxx to jenminzhang@'192.85.1.113' identified by 'jenminzhang';  

(4) 本地数据库表结构如下 :

  1. CREATE TABLE IF NOT EXISTS `isa_ywxx` (  
  2.   `ywid` int(11) NOT NULL auto_increment COMMENT '主键自动增长',  
  3.   `ywbh` varchar(10) NOT NULL COMMENT '业务编号',  
  4.   `ywmc` varchar(20) NOT NULL COMMENT '业务名称',  
  5.   `ywbz` varchar(30) default NULL COMMENT '备注信息',  
  6.   PRIMARY KEY  (`ywid`)  
  7. ) ENGINE=FEDERATED CHARSET=utf8 CONNECTION='mysql://jenminzhang:jenminzhang@192.85.1.9:3306/hrkip/isa_ywxx';  


配置完成了,可以进行测试了 。

 

5.配置过程中应注意问题 :

(1)首先要保证数据库服务支持 fedetated存储引擎

(2)本地访问远程数据库配置 :远程服务器中需要添加一个访问数据库表的数据库用户,本地数据库服务中 数据库表结构和远程访问目标数据库表基本一致,只是存储引擎必须为 federated,并需要给其配置connection属性 

(3)此例中只是配置本地访问远程数据库的单向配置,如果需要配置双向访问,需要将本地与远程配置兑换,再次配置异常(没有试验,根据之前的OracleDB_link 配置猜测)

 

备注(参数简单介绍) :

192.85.1.113 :本地数据库服务IP地址

192.85.1.9 :远程数据库无法IP地址

hrkip: 远程数据名称

本文转载自:

史帝文
粉丝 6
博文 68
码字总数 27347
作品 0
武汉
后端工程师
私信 提问
MySQL federated引擎 --- 实现类似oracle dblink功能

1.查看是否安装了federated引擎 show engines; 2.开启federated引擎 windows下在my.ini中加入federated,即可开启; linux中,需要编译时加入选项,再在my.ini中加入federated,方可开启. 3.建...

shaohan
2014/03/21
375
0
MySQL远程表访问设置

使用MySQL FEDERATED存储引擎,没有对表的本地数据文件(比如,没有.MYD文件)。取而代之地,一个远程数据库存储那些正常地应该在表中的数据。这使得MySQL客户端API来读,删除,更新和插入数...

鉴客
2012/04/26
4.5K
0
MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK.

1 引擎说明 本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来实现. 有点类似Oracle中的 数据库链接(DBLINK). 要允许这个存储引擎, 当构建MySQL时使用--with-...

SANSOM
2013/08/21
4.1K
4
使用mysql federated引擎构建MySQL分布式数据库访问层(转)

使用mysql federated 引擎构建 MySQL 分布式数据库访问层 前言:随着应用复杂度的增加,数据库不断细化切分,导致应用程序中数据库应用就得复杂,凌乱。绝大部分程序人员可能都遇到这种情况,...

lilclimate
2013/08/28
368
0
mysql 创建远程账户

Linux上安装的mysql。默认情况下只有一个账户 : root . 此账户只能进行本地连接 , 对外拒绝连接 . 我们需要建立一个允许远程登录的数据库账户 , 这样才可以方便的进行远程操作数据 . 默认情况...

孟浩奇
2016/12/08
100
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部