Linux mysql federated_MySQL的FEDERATED引擎实现类Oracle的DBlink
隨著業(yè)務(wù)的復(fù)雜度不斷的增加、數(shù)據(jù)庫不斷的切分,在分布式系統(tǒng)中往往一臺或幾臺數(shù)據(jù)庫并不能滿足我們的需求,所以常常需要多臺同時時用,而在平時需要通過其它服務(wù)器的數(shù)據(jù)庫獲取信息最為方便的就是數(shù)據(jù)鏈接,而比較常見的如Oracle中的DBlink一般,使用過Oracle的DBlink—數(shù)據(jù)庫的鏈接的人都知道可以跨服務(wù)器數(shù)據(jù)庫的來進行數(shù)據(jù)查詢。而在MySQL5.0以后中通過使用FEDERATED引擎也可以實現(xiàn)類似于Oracle中DBlink,在MySQL5.5開始默認安裝只是沒有啟用,同Oracle的DBlink一樣MySQL使用FEDERATED引擎實現(xiàn)外鏈接建議是在同一個局域網(wǎng)內(nèi),這樣可以減小彼此間的延遲,但兩者之間還是有很大區(qū)別的,在MySQL下使用FEDERATED引擎實現(xiàn)的外鏈接需要在本地數(shù)據(jù)庫中建虛擬表用以連接遠程數(shù)據(jù)庫,在這里就就簡單的說明一下MySQL的FEDERATED引擎實現(xiàn)的數(shù)據(jù)庫外鏈接。
首先,需要注意的有幾點:
1、建立外鏈接于局域網(wǎng)內(nèi)的環(huán)境實現(xiàn)最優(yōu);
2、使用FEDERATED引擎的外鏈接表,在本地是虛擬表,所以建表的示后不需要主鍵、索引、自增字段這些。同理,對本地虛擬表的結(jié)構(gòu)修改,并不會修改遠程表的結(jié)構(gòu);
3、TRUNCATE(截斷表)會清除遠程表數(shù)據(jù),DROP只會刪除本地虛擬表;
4、在虛擬表上不支持ALTER
在數(shù)據(jù)庫中是否有FEDERATED引擎可以通過如下來查看:
一般這種情況就是有FEDERATED引擎但是沒有啟用,啟用很簡單,在my.cnf或my.ini中的[mysqld]段中修改添加,如下:
[mysqld]
……
federated
……
重啟MySQL,此時再看就啟用了FEDERATED引擎
此時再本地數(shù)據(jù)庫建虛擬表用來鏈接遠程數(shù)據(jù)庫,其表結(jié)構(gòu)可以通過在遠程數(shù)據(jù)庫中通過SHOW CREATE TABLE來查看DDL,但是要注意去掉主鍵、索引、自增字段,但是本地的虛擬表的表名可以不同,如遠程數(shù)據(jù)庫:192.168.2.25下的my_test庫下有一張book_price表,遠程數(shù)據(jù)庫上的DDL:
在本地數(shù)據(jù)庫中的DDL如下:
這里需要注意的是CONNECTION后則是遠程數(shù)據(jù)庫的連接信息,這里要注意的是避免使用帶‘@’的密碼以免混淆,效果如下:
總結(jié)
以上是生活随笔為你收集整理的Linux mysql federated_MySQL的FEDERATED引擎实现类Oracle的DBlink的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式mysql一致性问题_分布式缓存数
- 下一篇: mysql的单页应用框架搭建_采用vue