当前位置: 首页 > ops >正文

【MySQL】存储引擎 - FEDERATED详解

📢博客主页:https://blog.csdn.net/2301_779549673
📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 JohnKi 原创,首发于 CSDN🙉
📢未来很长,值得我们全力奔赴更美好的生活✨

在这里插入图片描述

在这里插入图片描述

文章目录

  • 🏳️‍🌈一、FEDERATED 存储引擎
  • 🏳️‍🌈二、创建 FEDERATED 表
  • 🏳️‍🌈三、 FEDERATED 注意事项
  • 👥总结


🏳️‍🌈一、FEDERATED 存储引擎

允许访问远程 MySQL 数据库中的数据,

在不使用复制或集群技术的情况下,FEDERATED 存储引擎可以实现对 远程MySOL数据库中数据的访问,以多个物理服务器为基础创建一个逻辑数据库

当查询 FEDERATED 表时,将会从远程数据库获取数据,非常适合分布式或数据集市环境。

如图所示:
在这里插入图片描述

默认不支持,可以在启动时通过命令行选项 --federated选项文件的配置 来启用

在这里插入图片描述

🏳️‍🌈二、创建 FEDERATED 表

本地配置文件中的[mysqld]节点下加入 federated=1 来启用 FEDERATED 引擎,之后重启 MySQL 服务

# 配置⽂件路径 /etc/mysql/mysql.cnf
[mysqld]
federated=1 #加⼊配置root@VM-20-5-ubuntu:/var/lib/mysql/test_db# systemctl restart mysql
root@VM-20-5-ubuntu:/var/lib/mysql/test_db# systemctl status mysql
● mysql.service - MySQL Community ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2025-05-09 15:38:23 CST; 30s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 75856 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)Main PID: 75895 (mysqld)Status: "Server is operational"Tasks: 38 (limit: 2219)Memory: 364.2MCPU: 808msCGroup: /system.slice/mysql.service└─75895 /usr/sbin/mysqldMay 09 15:38:22 VM-20-5-ubuntu systemd[1]: Stopped MySQL Community Server.
May 09 15:38:22 VM-20-5-ubuntu systemd[1]: mysql.service: Consumed 1.546s CPU time.
May 09 15:38:22 VM-20-5-ubuntu systemd[1]: Starting MySQL Community Server...
May 09 15:38:23 VM-20-5-ubuntu systemd[1]: Started MySQL Community Server.

在这里插入图片描述

  • 在远程服务器上为用户加入远程访问权限,安全性与权限管理专题详细介绍
  • 在MySQL8.0中 InnoDB 是默认引擎,所以在创建表时需要指定 ENGINE=FEDERATED;
  • 创建 FEDERATED 表时,本地的表定义远程服务器的表定义相同,但数据存储在远程服务!
  • 本地表定义中使用 CONNECTION 连接字符串指向远程表的连接字符串;
  1. 创建运程表
# 远程服务器上的建表语句
CREATE TABLE t_federated (
id INT(20) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32) NOT NULL DEFAULT '',
INDEX name (name)
)
ENGINE=MyISAM
DEFAULT CHARSET=utf8mb4;

在这里插入图片描述
2. 建立远程连接用户

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 创建本地逻辑表
    注意,这里得需要用到内网穿透技术,让云服务器访问到本地。
# 本地服务器上的建表语句
CREATE TABLE t_federated (
id INT(20) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32) NOT NULL DEFAULT '',
INDEX name (name)
)
ENGINE=FEDERATED
DEFAULT CHARSET=utf8mb4
CONNECTION='mysql://federated:Fed123!!!@192.168.100.242:3306/test_db/t_federated'; # 指定远程服务器的连接--CONNECTION='mysql://fed_user@remote_host:3306/test_database/test_table';

连接字符串的格式:

  • scheme://user_name[:password@host_name[:port num]/db nameltbl namescheme: 连接协议,目前只支持mysql;
  • user_name: 用于连接远程服务器的用户名,注意:这个用户在远程服务器已创建,并授予了相应的操作权限;
  • password: 用户的密码:
  • host_name: 远程服务器的IP地址;
  • port_num: 远程服务器MySQL服务的端口号;
  • db_name: 远程表所在的数据库名;
  • tbl_name: 远程表名,本地表名与远程表名可以不同,但建议保持一致。

不会生成数据文件,表定义在数据字典中,生成.sdi为后缀的表信息描述文件(JSON格式)
建表成功后,对本地表的增删改查和操作远程表一样

🏳️‍🌈三、 FEDERATED 注意事项

  • 远程服务器必须是MySQL服务器;
  • 使用 CONNECTION 字符串时,密码中不能使用"@"字符
  • DROP TABLE 只删除本地表,不删除远程表;
  • 不支持事务

👥总结

本篇博文对 【MySQL】存储引擎 - FEDERATED详解 做了一个较为详细的介绍,不知道对你有没有帮助呢

觉得博主写得还不错的三连支持下吧!会继续努力的~

http://www.xdnf.cn/news/4857.html

相关文章:

  • WPF之静态资源与动态资源
  • 从 AGI 到具身智能体:解构 AI 核心概念与演化路径全景20250509
  • JVM详解
  • 路由组件1
  • 创建没有 TPM 和安全启动的 Windows 11 可启动 USB 驱动器
  • 【MySQL】数据库、数据表的基本操作
  • SIGIR 2025端到端生成式推荐ETEGRec
  • 详解:ai证书有哪些?
  • MCP开发入门
  • C++ stl中的stack和queue的相关函数用法
  • uniapp 百家云直播插件打包失败
  • 在ISOLAR A/B 工具使用UDS 0x14服务清除单个DTC故障的配置
  • 基于大模型的母婴ABO血型不合溶血病全方位预测与诊疗方案研究
  • Java EE初阶——初识多线程
  • 纯净IP,跨境账号稳定的底层逻辑
  • Linux 文件系统中的数据定位:inode 与 dentry 的技术解析
  • CentOS 7 系统下安装 OpenSSL 1.0.2k 依赖问题的处理
  • 学习笔记:黑马程序员JavaWeb开发教程(2025.4.1)
  • [Windows] 东芝存储诊断工具1.30.8920(20170601)
  • 【应急响应】- 日志流量如何分析?
  • 文本框碰撞测试
  • 基 LabVIEW 的多轴电机控制系统
  • element-ui时间线样式修改
  • vison transformer vit 论文阅读
  • 微软系统 红帽系统 网络故障排查:ping、traceroute、netstat
  • PDF文档解析新突破:图表识别、公式还原、手写字体处理,让AI真正读懂复杂文档!
  • 使用Python和OpenCV实现实时人脸检测与识别
  • C++ 观察者模式详解
  • 使用程序绘制中文字体——中文字体的参数化设计方案初探
  • 打造专属AI好友:小智AI聊天机器人详解