本地MySQL數據庫要訪問遠程MySQL數據庫的表中的數據的實現

轉自: http://blog.csdn.net/jenminzhang/article/details/9872647 mysql


1.實現基本思路:藉助 MySQL的 federated 存儲引擎實現 linux

federated 存儲引擎簡單介紹 :federated 是其中一個專門針對遠程數據庫的實現。通常狀況下在本地數據庫中建表會在數據庫目錄中生成相應的表定義文件,並同時生成相應的數據文件。 但經過federated 引擎建立的表只是在本地有表定義文件,數據文件則存在於遠程數據庫中
sql

2.查看當前數據庫服務是否支持 federated引擎 ,使用命令「 show engines 」命令查看 ,以下圖:數據庫


"show engines "命令展現結果,簡單介紹 :windows

第一列 :名稱爲 Engine,表示 存儲引擎名稱 服務器

第二列 :Support,表示當前數據庫服務是否支持所對應的存儲引擎 ,通常狀況 Support有如下幾個值:oracle


YES 支持並開啓
DEFAULT 支持並開啓, 而且爲默認引擎
NO 不支持
DISABLED 支持,但未開啓

有上圖能夠看出,當前數據庫服務不支持federated引擎 ,須要手動配置使  當前數據庫服務支持federated引擎 

3.配置federated數據庫存儲引擎 :ide


(1)windows 系統配置 :測試

windows下在my.ini中加入federated,從新啓動數據庫服務便可開啓;
url

(2)Linux系統配置:

在my.cnf文件中的mysqld選項中配置 federated ,從新啓動數據庫服務便可開啓;

4.配置數據庫遠程訪問數據:

(1)實用show engines 命令檢查數據庫是否已經支持federated引擎 

(2) 遠程數據庫表結構 


[sql] view plain copy

  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) 給遠程數據庫服務添加一條數據庫登陸用戶信息 ,信息以下 :


[sql] view plain copy

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



(4) 本地數據庫表結構以下 :


[sql] view plain copy

  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: 遠程數據名稱

相關文章
相關標籤/搜索