時間:2022-03-01來源:www.farandoo.com作者:電腦系統城
注意:myemployees庫和shoppingCart庫在同一臺物理主機,如果不在同一臺物理主機該怎么辦呢?下面我會介紹到。
聯合查詢(不同的2個庫,myemployees庫和shoppingCart庫),這2個庫在同一臺物理主機上,都在我本機。
1 2 3 4 5 6 7 8 |
#聯合查詢(不同的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; |
為了演示效果,我這里使用我的虛擬機,我虛擬機里安裝了Linux系統(centos),Linux系統中已經安裝了MySql數據庫,MySql數據庫服務已經啟動了,所有的環境已經全部弄好了。
我的Linux系統(centos)的ip是192.168.117.66。
我打算我本地的author表和遠程的user表進行聯合查詢。
在linux中輸入SHOW CREATE TABLE `user`;這句話得到的結果后,我們把
1 2 3 4 |
CREATE TABLE IF NOT EXISTS ` user ` ( `id` INT (11) DEFAULT NULL , ` name ` VARCHAR (20) DEFAULT NULL ) |
這段代碼拷貝到我本地的數據庫中,并且在末尾加上
1 | ENGINE =FEDERATED CONNECTION = 'mysql://root:root@192.168.117.66:3306/testDB/user' ;這句話。 |
1 2 3 4 |
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' ; |
其實上面的那段語句,說白了,就是在我本地的數據庫中建了一個遠程數據庫的連接的快捷方式(遠程數據庫的連接快捷方式),類似于什么呢?就類似于我們window操作系統中的桌面上的桌面快捷方式,我們雙擊一下桌面上的某個軟件圖標就能打開該軟件,一樣的道理嘛。
執行上面的語句即可。
對了,還有一點要注意:
你要查一下,你本地的mysql數據庫的FEDERATED引擎有沒有開啟。
1 | SHOW ENGINES; |
如果FEDERATED是NO的話,說明沒有開啟,需要你去修改一下mysql數據庫的配置文件。
修改本地mysql數據庫的配置文件,在配置文件末尾加上federated,如下圖:
如果你是windows系統的話,就修改my.ini文件,如果你用的是Linux系統的話,就修改my.cnf文件。
修改完配置文件后記得重啟一下mysql的服務。
linux重啟mysql服務,service mysqld restart。
windows重啟mysql服務,在dos窗口中,輸入net stop mysql服務名,然后再輸入net start mysql服務名。
OK,全部搞定后,執行如下sql語句,即可看到跨庫查詢的查詢結果。
1 2 3 4 |
# SELECT id, aname FROM author UNION SELECT id, ` name ` FROM ` user `; |
1 | SELECT * FROM author INNER JOIN ` user `; |
以上這種跨服務器跨庫的查詢,需要注意如下幾點:
1.該跨庫查詢方式不支持事務,最好別使用事務。
2.不能修改表結構。
3.MySQL使用這種跨庫查詢方式,遠程數據庫目前僅支持MySQL,其他數據庫不支持。
4.表結構必須和目標數據庫表完全一致。
到此這篇關于mysql遠程跨庫聯合查詢的示例的文章就介紹到這了。
2022-03-09
MySQL存儲過程圖文實例講解教程2022-03-01
千萬級用戶系統SQL調優實戰分享2022-03-01
MYSQL數據庫主從同步設置的實現步驟這篇文章主要介紹了銀河麒麟V10安裝MySQL8028的圖文教程,并詳細介紹了遠程訪問的實現方法,本文通過圖文命令給大家介紹的非常詳細...
2022-02-28
聚集索引(Clustered Index) 輔助索引(Secondary Index) 覆蓋索引(Covering index) 聯合索引 《MySQL技術內幕 InnoDB存儲引擎》學習筆記...
2022-02-11