一、MySQL語言跨服務(wù)器查詢sql怎么寫
兩個服務(wù)器組成數(shù)據(jù)庫集群,把數(shù)據(jù)庫服務(wù)器A作為數(shù)據(jù)庫服務(wù)器B的從節(jié)點,采用同步復(fù)制或者半同步復(fù)制的方式進行數(shù)據(jù)同步,這樣服務(wù)器A就可以本地查詢數(shù)據(jù)庫B的數(shù)據(jù)了。
在日常的開發(fā)中經(jīng)常進行跨數(shù)據(jù)庫進行查詢數(shù)據(jù)。
同服務(wù)器下跨數(shù)據(jù)庫進行查詢在表前加上數(shù)據(jù)庫名就可以查詢到數(shù)據(jù)。
mysql跨服務(wù)器進行查詢提供了FEDERATED引擎進行映射表,然后進行查詢。
mysql數(shù)據(jù)庫federated引擎是關(guān)閉的,首先需要先啟用該引擎。mysql執(zhí)行show engines命令查看引擎狀態(tài)。
show engines;
FEDERATED引擎是未啟用的。
啟用FEDERATED引擎
Windows下找到my.ini修改mysql配置。該文件是隱藏在ProgramData文件夾,在該地址:C:\ProgramData\MySQL\MySQL Server 5.7,可以通過%ProgramData%查找該隱藏文件件。
打開my.ini文件,在[mysqld] 下加上federated
重啟mysql,再查看引擎
在mysql中創(chuàng)建遠(yuǎn)程服務(wù)器數(shù)據(jù)庫中的需要映射的表,映射表名稱可以隨意命名,但是數(shù)據(jù)結(jié)構(gòu)必要一樣。
CREATE TABLE hn_user (
? id varchar(32) NOT NULL,
? name varchar(20) DEFAULT NULL,
? phone varchar(11) DEFAULT NULL,
? idcard varchar(18) DEFAULT NULL,
? update_time bigint(13) DEFAULT NULL,
? add_time bigint(13) DEFAULT NULL,
? PRIMARY KEY (id)
) ENGINE=FEDERATED CONNECTION=’mysql://root:123456@192.168.1.8:3306/db/user’;
注意:ENGINE=FEDERATED,使用federated引擎,修改用戶名,密碼,地址,端口號,數(shù)據(jù)庫,表
這樣就可以將遠(yuǎn)程的user表數(shù)據(jù)實時映射到hn_user表中,實現(xiàn)mysql跨服務(wù)器查詢數(shù)據(jù)。
延伸閱讀:
二、什么是數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫的應(yīng)用非常廣泛,舉個例子,我們平時在瀏覽器上搜索內(nèi)容,就要用到數(shù)據(jù)庫去檢索我們的關(guān)鍵字。以前我們可能會用數(shù)組、集合、文件等來存儲數(shù)據(jù),但是接下來我們就會面臨一個問題,當(dāng)存儲的數(shù)據(jù)或內(nèi)容過多的時候,我們?nèi)绾稳ゾ珳?zhǔn)的找到我們需要的東西,這時候數(shù)據(jù)庫管理系統(tǒng)就派上了用場。除此之外,數(shù)據(jù)庫管理系統(tǒng)還能永久的儲存我們的數(shù)據(jù)。
為了便于大家理解,這里先給大家講解幾個概念
DB數(shù)據(jù)庫(database):存儲數(shù)據(jù)的“倉庫”。它保存了一系列有組織的數(shù)據(jù)。
DBMS數(shù)據(jù)庫管理系統(tǒng)(Database Management System):數(shù)據(jù)庫是通過DBMS創(chuàng)建和操作的容器。