在MySQL中,當(dāng)我們需要在不同服務(wù)器上查詢相關(guān)信息時(shí),可以使用跨服務(wù)器查詢,即利用MySQL視圖跨不同服務(wù)器上的數(shù)據(jù)表查詢數(shù)據(jù)。下面我們來介紹一下如何進(jìn)行跨服務(wù)器查詢視圖操作。
首先,需要在本地服務(wù)器上創(chuàng)建一個(gè)視圖,然后創(chuàng)建一個(gè)FEDERATED引擎表,該表可以指向遠(yuǎn)程服務(wù)器上一個(gè)需要查詢的表并映射到我們本地視圖上。具體操作代碼如下:
CREATE VIEW local_view AS SELECT * FROM local_table; CREATE TABLE federated_table ( id INT(11) NOT NULL, name VARCHAR(50), address VARCHAR(100), PRIMARY KEY (id) ) ENGINE = FEDERATED CONNECTION='mysql://user:password@remote_server_name:3306/remote_database_name/remote_table_name';
其中,local_view
是我們本地創(chuàng)建的視圖,local_table
是我們本地需要查詢的表,federated_table
是我們在本地創(chuàng)建的FEDERATED引擎表,我們需要指定連接到遠(yuǎn)程服務(wù)器上的相關(guān)信息,例如遠(yuǎn)程服務(wù)器名稱、數(shù)據(jù)庫名稱、表名稱、用戶名和密碼等。
創(chuàng)建好這個(gè)FEDERATED引擎表后,我們可以直接通過該表查詢遠(yuǎn)程服務(wù)器上的數(shù)據(jù)表,相當(dāng)于實(shí)現(xiàn)了跨服務(wù)器查詢視圖,具體實(shí)現(xiàn)代碼如下:
SELECT * FROM federated_table;
通過以上操作,我們就可以實(shí)現(xiàn)MySQL視圖跨不同服務(wù)器上的數(shù)據(jù)表查詢數(shù)據(jù)了。