Mysql-經典實戰案例(13):如何通過Federated實現跨實例訪問表

實現原理:使用Federated引擎本創建一個鏈接表實現,但是Federated 引擎只是一個按列的順序和類型解析遠程返回的數據流

在這里插入圖片描述

準備工作:
1. 本地庫啟用 Federated 引擎
  1. 查看是否已啟用:

    SHOW ENGINES;
    

    如果Federated 引擎的 SupportYES 就可以直接用;
    如果是 NO

    • 編輯 MySQL 配置文件 my.cnf(Linux 一般在 /etc/my.cnf,Windows 在 MySQL 安裝目錄下)

    • [mysqld] 段加:

      federated
      
    • 重啟 MySQL。

2. 確保遠程庫允許連接
  • 遠程 MySQL 要創建一個能被本地 MySQL 訪問的賬號,比如:

    CREATE USER 'federated_user'@'本地IP' IDENTIFIED BY '密碼';
    GRANT SELECT ON remote_db.* TO 'federated_user'@'本地IP';
    FLUSH PRIVILEGES;
    
  • 測試是否能直接用 mysql -h遠程IP -u federated_user -p 登錄。


3. 在本地建 Federated 表

假設遠程有:

-- 遠程 MySQL (192.168.1.200)
CREATE DATABASE remote_db;
USE remote_db;
CREATE TABLE user_info (id INT PRIMARY KEY,name VARCHAR(50),age INT
);
INSERT INTO user_info VALUES (1, 'Alice', 25), (2, 'Bob', 30);
本地建一個 Federated 表

需要先從遠程表獲取對應的表結構創建sql


SHOW CREATE TABLE remote_user_info\G

本地創建(把 InnoDB 改成 FEDERATED

CREATE TABLE remote_user_info (id INT PRIMARY KEY,name VARCHAR(50),age INT
) ENGINE=FEDERATED
CONNECTION='mysql://federated_user:密碼@192.168.1.200:3306/remote_db/user_info';
參數說明
  • mysql://
    協議標識,固定寫 mysql:// 表示 Federated 連接到 MySQL 數據源。
  • federated_user
    遠程 MySQL 用戶名(必須有訪問遠程表的權限)。
  • 密碼
    對應的遠程 MySQL 用戶密碼。
  • 192.168.1.200
    遠程 MySQL 主機的 IP 地址(也可以寫域名)。
  • 3306
    遠程 MySQL 端口(默認是 3306)。
  • remote_db
    遠程 MySQL 數據庫名(schema 名)。
  • user_info
    遠程 MySQL 表名。

4. 跨庫查詢示例

假設本地有個 local_db.local_orders 表:

SELECT o.order_id, u.name, u.age
FROM local_orders o
JOIN remote_user_info u ON o.user_id = u.id;

這時 remote_user_info 實際就是訪問遠程 MySQL 的數據了。


5. 注意事項
  • 性能:每次訪問 Federated 表都會發 SQL 到遠程庫 → 網絡延遲會影響速度
  • DDL 限制ALTER TABLE 對 Federated 表有限制,無法修改表結構。而且本地表結構必須與遠程表完全一樣,如果遠程表結構變了,本地 Federated 表也要手動同步修改
  • 事務支持:Federated 不支持跨庫事務(和 Oracle DBLINK 一樣的問題)
  • 安全:連接串的密碼是明文存儲的,生產環境注意賬號權限最小化
  • 刪除: 刪除本地表,遠程表不會刪除

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920006.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920006.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920006.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux -- 動靜態庫

一、什么是庫1、動靜態庫概念# 庫是寫好的現有的,成熟的,可以復?的代碼。現實中每個程序都要依賴很多基礎的底層庫,不可能每個?的代碼都從零開始,因此庫的存在意義?同尋常。# 本質上來說庫是?種可執?代碼的?進制形式&#x…

Linux筆記---單例模式與線程池

1. 單例模式單例模式是一種常用的設計模式,它確保一個類只有一個實例,并提供一個全局訪問點來獲取這個實例。這種模式在需要控制資源訪問、管理共享狀態或協調系統行為時非常有用。單例模式的核心特點:私有構造函數:防止外部通過n…

Linux中的指令

1.adduseradduser的作用是創立一個新的用戶。當我們在命令行中輸入1中的指令后,就會彈出2中的命令行,讓我們設立新的密碼,緊接著就會讓我們再次輸入新的密碼,對于密碼的輸入它是不會顯示出來的,如果輸入錯誤就會讓我們…

【n8n】Docker容器中安裝ffmpeg

容器化部署 n8n 時,常常會遇到一些環境依賴問題。缺少 docker 命令或無法安裝 ffmpeg 是較為常見的場景,如果處理不當,會導致流程執行受限。 本文介紹如何在 n8n 容器中解決 docker 命令不可用和 ffmpeg 安裝受限的問題,并給出多…

【基礎算法】初識搜索:遞歸型枚舉與回溯剪枝

文章目錄一、搜索1. 什么是搜索?2. 遍歷 vs 搜索3. 回溯與剪枝二、OJ 練習1. 枚舉子集 ?(1) 解題思路(2) 代碼實現2. 組合型枚舉 ?(1) 解題思路請添加圖片描述(2) 代碼實現3. 枚舉排列 ?(1) 解題思路(2) 代碼實現4. 全排列問題 ?(1) 解題思路(2) 代碼實現一、搜…

Node.js異步編程——async/await實現

一、async/await基礎語法 在Node.Js編程中,async關鍵字用于定義異步函數,這個異步函數執行完會返回一個Promise對象,異步函數的內部可以使用await關鍵字來暫停當前代碼的繼續執行,直到Promise操作完成。 在用法上,async關鍵字主要用于聲明一個異步函數,await關鍵字主要…

搭建一個簡單的Agent

準備本案例使用deepseek,登錄deepseek官網,登錄賬號,充值幾塊錢,然后創建Api key可以創建虛擬環境,python版本最好是3.12,以下是文件目錄。test文件夾中,放一些txt文件做測試,main.p…

uv,下一代Python包管理工具

什么是uv uv(Universal Virtual)是由Astral團隊(知名Python工具Ruff的開發者)推出的下一代Python包管理工具,使用Rust編寫。它集成了包管理、虛擬環境、依賴解析、Python版本控制等功能,它聚焦于三個關鍵點…

單片機的輸出模式推挽和開漏如何選擇呢?

推挽和開漏是單片機的輸出模式,屬于I/O口配置的常見類型。開漏(Open-Drain)和推挽(Push-Pull)是兩種根本不同的輸出電路結構,理解它們的區別是正確使用任何單片機(包括51和STM32)GPI…

java18學習筆記-Simple Web Server

408:Simple Web Server Python、Ruby、PHP、Erlang 和許多其他平臺提供從命令行運行的開箱即用服務器。這種現有的替代方案表明了對此類工具的公認需求。 提供一個命令行工具來啟動僅提供靜態文件的最小web服務器。沒有CGI或類似servlet的功能可用。該工具將用于原型設計、即…

深度解析Atlassian 團隊協作套件(Jira、Confluence、Loom、Rovo)如何賦能全球分布式團隊協作

無窮無盡的聊天記錄、混亂不堪的文檔、反饋信息分散在各個不同時區……在全球分布式團隊中開展真正的高效協作,就像是一場不可能完成的任務。 為什么會這樣?因為即使是最聰明的團隊,也會遇到類似的障礙: 割裂的工作流&#xff1a…

理解AI 智能體:智能體架構

1. 引言 智能體架構(agent architecture)是一份藍圖,它定義了AI智能體各組件的組織方式和交互機制,使智能體能夠感知環境、進行推理并采取行動。本質上,它就像是智能體的數字大腦——整合了“眼睛”(傳感器…

Spring Cloud系列—SkyWalking鏈路追蹤

上篇文章: Spring Cloud系列—Seata分布式事務解決方案TCC模式和Saga模式https://blog.csdn.net/sniper_fandc/article/details/149947829?fromshareblogdetail&sharetypeblogdetail&sharerId149947829&sharereferPC&sharesourcesniper_fandc&…

機器人領域的算法研發

研究生期間學習大模型,可投遞機器人領域的算法研發、技術支持等相關崗位,以下是具體推薦: AI算法工程師(大模型方向-機器人應用):主要負責大模型開發與優化,如模型預訓練、調優及訓練效率提升等…

深度學習入門:神經網絡

文章目錄一、深度學習基礎認知二、神經網絡核心構造解析2.1 神經元的基本原理2.2 感知器:最簡單的神經網絡2.3 多層感知器:引入隱藏層解決非線性問題2.3.1 多層感知器的結構特點2.3.2 偏置節點的作用2.3.3 多層感知器的計算過程三、神經網絡訓練核心方法…

mysql的索引有哪些?

1. 主鍵索引(PRIMARY KEY)主鍵索引通常在創建表時定義,確保字段唯一且非空:-- 建表時直接定義主鍵 CREATE TABLE users (id INT NOT NULL,name VARCHAR(50),PRIMARY KEY (id) -- 單字段主鍵 );-- 復合主鍵(多字段組合…

【計算機視覺與深度學習實戰】08基于DCT、DFT和DWT的圖像變換處理系統設計與實現(有完整代碼python3.13可直接粘貼使用)

1. 引言 數字圖像處理作為計算機視覺和信號處理領域的重要分支,在過去幾十年中得到了快速發展。圖像變換技術作為數字圖像處理的核心技術之一,為圖像壓縮、特征提取、去噪和增強等應用提供了強有力的數學工具。離散余弦變換(Discrete Cosine Transform, DCT)、離散傅里葉變…

使用Python實現DLT645-2007智能電表協議

文章目錄🌴通訊支持🌴 功能完成情況服務端架構設計一、核心模塊劃分二、數據層定義三、協議解析層四、通信業務層(以DLT645服務端為例)五、通信層(以TCP為例)使用例子🌴通訊支持 功能狀態TCP客…

未來已來:基于IPv6單棧隔離架構的安全互聯實踐報告

未來已來:基于IPv6單棧隔離架構的安全互聯實踐報告 報告摘要 隨著IPv4地址資源徹底枯竭,全球網絡基礎設施正加速向IPv6單棧(IPv6-Only)演進。傳統“IPv4為主、IPv6為輔”的雙棧模式已無法滿足數字化轉型對海量地址、端到端連接與原…

Ubuntu24.04 安裝 Zabbix

Ubuntu24.04 安裝 Zabbix 環境: 軟件版本Ubuntu24.04.3Nginx1.24.0MySQL8.4.6PHP8.3.6phpMyAdmin5.2.2Zabbix7.4.1 LNMP 1. 更新本地軟件包索引并升級已安裝軟件 更新可用軟件包列表 把已安裝的軟件升級到最新版 安裝常用工具 sudo apt update && sud…