mysql?dblink跨庫關(guān)聯(lián)查詢的實現(xiàn)
1、解決方案
mysql是不支持跨庫連接的,如果我們實在要連接的話可以用dblink方式。

解釋:
- dblink就是我們在創(chuàng)建表的時候連接到我們的遠(yuǎn)程庫,然后我們本地新建的表數(shù)據(jù)就是
映射遠(yuǎn)程的表的數(shù)據(jù)。 - 當(dāng)我們創(chuàng)建一個以FEDERATED為存儲引擎的表時,服務(wù)器在
數(shù)據(jù)庫目錄只創(chuàng)建一個表定義文件。文件由表的名字開始,并有一個frm擴(kuò)展名。無其它文件被創(chuàng)建,因為實際的數(shù)據(jù)在一個遠(yuǎn)程數(shù)據(jù)庫上。這不同于為本地表工作的存儲引擎的方式。
如我現(xiàn)在本地要連接我的阿里云的sys_user表

所以我需要在本地建一個相同字段的表,我取名叫sys_user_copy,并連接到遠(yuǎn)程庫

建好后,我本地sys_user_copy的表里面的數(shù)據(jù)是映射遠(yuǎn)程的表的數(shù)據(jù)

所以我關(guān)聯(lián)查詢,可以直接關(guān)聯(lián)我本地sys_user_copy表從而查出來。

改了本地的數(shù)據(jù),遠(yuǎn)程的表數(shù)據(jù)也會跟著變

2、操作
1、開啟FEDERATED引擎show engines

如果這里是NO,需要在配置文件[mysqld]中加入一行:federated

改完重啟服務(wù),就變成yes了。
2、建表時加上連接

CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://username:password@hostname:port/database/tablename'
這樣即可。
3、缺點
1、本地表結(jié)構(gòu)必須與遠(yuǎn)程表完全一樣
2、不支持事務(wù)
3、不支持表結(jié)構(gòu)修改
4、刪除本地表,遠(yuǎn)程表不會刪除
5、遠(yuǎn)程服務(wù)器必須是一個MySQL服務(wù)器
到此這篇關(guān)于mysql dblink跨庫關(guān)聯(lián)查詢的實現(xiàn)的文章就介紹到這了,更多相關(guān)mysql 跨庫關(guān)聯(lián)查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql DBA:mysqladmin常用命令總結(jié)
mysqladmin是MySQL一個重要的客戶端,最常見的是使用它來關(guān)閉數(shù)據(jù)庫,除此,該命令還可以了解MySQL運行狀態(tài)、進(jìn)程信息、進(jìn)程等,本文介紹一下如何使用mysqladmin extended-status(因為沒有"歧義",所以可以使用ext代替)了解MySQL的運行狀態(tài)2014-03-03
mysql如何分別按年/月/日/周分組統(tǒng)計數(shù)據(jù)詳解
我們在用Mysql抽取數(shù)據(jù)時候,經(jīng)常需要按照天、周、月等不同的粒度對數(shù)據(jù)進(jìn)行分組統(tǒng)計,下面這篇文章主要給大家介紹了關(guān)于mysql如何分別按年/月/日/周分組統(tǒng)計數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-12-12
Linux下指定mysql數(shù)據(jù)庫數(shù)據(jù)配置主主同步的實例
Linux下指定數(shù)據(jù)庫數(shù)據(jù)配置主主同步的實例,有需要的朋友可以參考下2013-01-01

