mysql跨服务查询之FEDERATED存储引擎 |
您所在的位置:网站首页 › mysql数据库跨库跨表连接 › mysql跨服务查询之FEDERATED存储引擎 |
文章目录
一、FEDERATED存储引擎1.1、说明:1.2、局限性1.3、跨服务的方式
二、开启FEDERATED存储引擎1.1、查看存储引擎1.1.1、不存在存储引擎-安装
1.2、开启存储引擎1.3、拓展mysql存储引擎对比
三、跨服务连接示例1.1、 目标:1.2、创建关系1.2.1、权限说明
1.3、成功效果1.4、增删改查
一、FEDERATED存储引擎
01、从5.1.26开始,默认MySQL不启用federated存储引擎,所以需要在my.cnf中加入federated选项 02、或是在命令行用–federated选项启动mysqld。 1.1、说明: mysql 提供了一个类似Oracle中的数据库链接(DBLINK)功能的存储引擎–FEDERATED当我们创建一个以FEDERATED为存储引擎的表时,服务器在数据库目录只创建一个表定义文件。文件由表的名字开始,并有一个frm扩展名。无其它文件被创建,因为实际的数据在一个远程数据库上。这不同于为本地表工作的存储引擎的方式。 1.2、局限性 远程服务器必须是一个MySQL服务器。FEDERATED对其它数据库引擎的支持可能会在将来被添加,目前不支持其他数据库,跨服务器远程其他类型数据库可以采用创建远程连接服务器的方式FEDERATED表指向的远程表在你通过FEDERATED表访问它之前必须存在。一个FEDERATED表指向另一个FEDERATED表是可能的,但是你必须小心不要创建一个循环。没有对事务的支持。如果远程表已经改变,对FEDERATED引擎而言是没有办法知道的。 a、这个的原因是因为这个表必须象数据文件一样工作,除了数据库其它任何都不会被写入。 b、如果有任何对远程数据库的改变,本地表中数据的完整性可能会被破坏。FEDERATED存储引擎支持SELECT, INSERT, UPDATE, DELETE和索引。它不支持ALTER TABLE, DROP TABLE或任何其它的数据定义语言语句。当前的实现不使用预先准备好的语句。执行使用SELECT, INSERT, UPDATE和DELETE,但不用HANDLER。FEDERATED表不能对查询缓存不起作用。目前的局限性是这些。 这些限制中的一些在FEDERATED处理机的将来版本可能被消除。 1.3、跨服务的方式 mysql的FEDERATED存储引擎oracle的dblink创建远程连接服务器大数据的presto,接管数据源,然后聚合分析fink cdc也是一种方案 二、开启FEDERATED存储引擎 1.1、查看存储引擎 存在的FEDERATED存储引擎就配置文件开启不存在就安装查看 show engines;Support 的值有以下几个: YES 支持并开启DEFAULT 支持并开启, 并且为默认引擎NO 不支持DISABLED 支持,但未开启如图: federated是支持动态安装的 install plugin federated soname 'ha_federated.so';注明:如果不行话,就重新编码安装mysql吧 1.2、开启存储引擎在mysql的配置文件中加入federated,然后重启mysql 注意:要放在mysqld的模块下,放在其他模块下无法识别变量 如图: 查看存储引擎 yes表示开启成功 FEDERATED存储引擎开启成功了 1.1、 目标:本地mysql去链接云服务器的mysql 注意:如果远程表已经改变,对FEDERATED引擎而言是没有办法知道的 要了解FEDERATED存储引擎的局限性,看本文1.2的说明 如果有任何对远程数据库的改变,本地表中数据的完整性可能会被破坏 建议:表名要见名知意,知道他是远程连接的表,就像下面的示例:link_xx_xx表 创建 -- 创建出结构一样的表,表名可以不一样 CREATE TABLE `link_yun_sys_user` ( `id` int(50) NOT NULL, `username` varchar(50) DEFAULT NULL, `password` varchar(50) DEFAULT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE = FEDERATED CONNECTION='mysql://root:[email protected]:3306/testLink/sys_user' -- 指定引擎为 FEDERATED -- 指定用户名、密码、ip、端口、数据库、表如图: 如果数据库有做权限限制,比如用户权限,增删改查权限,要进行授权,才能进行操作 1.3、成功效果本地新增1条数据 INSERT INTO link_yun_sys_user(id,username,`password`,update_time) VALUES('2','lisi','8888',NOW());
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |