mysql遠(yuǎn)程跨庫聯(lián)合查詢的示例
注意:myemployees庫和shoppingCart庫在同一臺物理主機(jī),如果不在同一臺物理主機(jī)該怎么辦呢?下面我會介紹到。
情況一2個庫在同一臺物理主機(jī)
聯(lián)合查詢(不同的2個庫,myemployees庫和shoppingCart庫),這2個庫在同一臺物理主機(jī)上,都在我本機(jī)。
#聯(lián)合查詢(不同的2個庫,myemployees庫和shoppingCart庫) SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5 UNION SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02; # SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5 UNION ALL SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;
情況二2個庫不在同一臺物理主機(jī)(即2個庫分別在不同的物理主機(jī))
為了演示效果,我這里使用我的虛擬機(jī),我虛擬機(jī)里安裝了Linux系統(tǒng)(centos),Linux系統(tǒng)中已經(jīng)安裝了MySql數(shù)據(jù)庫,MySql數(shù)據(jù)庫服務(wù)已經(jīng)啟動了,所有的環(huán)境已經(jīng)全部弄好了。
我的Linux系統(tǒng)(centos)的ip是192.168.117.66。
我打算我本地的author表和遠(yuǎn)程的user表進(jìn)行聯(lián)合查詢。
在linux中輸入SHOW CREATE TABLE `user`;這句話得到的結(jié)果后,我們把
CREATE TABLE IF NOT EXISTS `user` ( ? `id` INT(11) DEFAULT NULL, ? `name` VARCHAR(20) DEFAULT NULL )
這段代碼拷貝到我本地的數(shù)據(jù)庫中,并且在末尾加上
ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';這句話。
CREATE TABLE IF NOT EXISTS `user` ( `id` INT(11) DEFAULT NULL, `name` VARCHAR(20) DEFAULT NULL )ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';
其實(shí)上面的那段語句,說白了,就是在我本地的數(shù)據(jù)庫中建了一個遠(yuǎn)程數(shù)據(jù)庫的連接的快捷方式(遠(yuǎn)程數(shù)據(jù)庫的連接快捷方式),類似于什么呢?就類似于我們window操作系統(tǒng)中的桌面上的桌面快捷方式,我們雙擊一下桌面上的某個軟件圖標(biāo)就能打開該軟件,一樣的道理嘛。
執(zhí)行上面的語句即可。
對了,還有一點(diǎn)要注意:
你要查一下,你本地的mysql數(shù)據(jù)庫的FEDERATED引擎有沒有開啟。
SHOW ENGINES;
如果FEDERATED是NO的話,說明沒有開啟,需要你去修改一下mysql數(shù)據(jù)庫的配置文件。
修改本地mysql數(shù)據(jù)庫的配置文件,在配置文件末尾加上federated,如下圖:
如果你是windows系統(tǒng)的話,就修改my.ini文件,如果你用的是Linux系統(tǒng)的話,就修改my.cnf文件。
修改完配置文件后記得重啟一下mysql的服務(wù)。
linux重啟mysql服務(wù),service mysqld restart。
windows重啟mysql服務(wù),在dos窗口中,輸入net stop mysql服務(wù)名,然后再輸入net start mysql服務(wù)名。
OK,全部搞定后,執(zhí)行如下sql語句,即可看到跨庫查詢的查詢結(jié)果。
# SELECT id, aname FROM author UNION SELECT id, `name` FROM `user`;
SELECT * FROM author INNER JOIN `user`;
以上這種跨服務(wù)器跨庫的查詢,需要注意如下幾點(diǎn):
1.該跨庫查詢方式不支持事務(wù),最好別使用事務(wù)。
2.不能修改表結(jié)構(gòu)。
3.MySQL使用這種跨庫查詢方式,遠(yuǎn)程數(shù)據(jù)庫目前僅支持MySQL,其他數(shù)據(jù)庫不支持。
4.表結(jié)構(gòu)必須和目標(biāo)數(shù)據(jù)庫表完全一致。
到此這篇關(guān)于mysql遠(yuǎn)程跨庫聯(lián)合查詢的示例的文章就介紹到這了,更多相關(guān)mysql遠(yuǎn)程跨庫查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL查詢?nèi)繑?shù)據(jù)集結(jié)果不一致問題解決方案
最近出現(xiàn)一個很奇怪的MySQL問題,使用不同select語句查詢?nèi)繑?shù)據(jù)集居然得到不同的記錄數(shù)2012-11-11Windows下mysql?8.0.28?安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows下mysql?8.0.28?安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04MySQL中的聚簇索引、非聚簇索引、聯(lián)合索引和唯一索引詳細(xì)介紹
本文主要介紹了MySQL的索引類型,根據(jù)索引的存儲方式來劃分,索引可以分為聚簇索引和非聚簇索引。聚簇索引的特點(diǎn)是葉子節(jié)點(diǎn)包含了完整的記錄行,而非聚簇索引的葉子節(jié)點(diǎn)只有所以字段和主鍵ID,感興趣的同學(xué)可以閱讀本文2023-04-04