Federated引擎的使用
场景
两个数据源DB1和DB2,需要在DB1中访问DB2的表或视图,类似Oracle的dblink
实现过程
1-检查DB1的Federated是否开启
show engines;
20220211084621.png
如果未开启,修改DB1mysql配置信息,增加配置,默认mysql是不开启federated引擎的
#开启federated
federated
2-创建表指向DB2
CREATE TABLE `bas_code_link` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '系统ID,唯一主键',
`code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='基础编码分类'
ENGINE =FEDERATED CONNECTION='mysql://用户:密码@ip地址:端口/数据库/数据库表'
注意事项
- 用户需要有远程访问DB2的权限
- 建表语句中需要增加语句 ENGINE =FEDERATED CONNECTION='mysql://用户:密码@ip地址:端口/数据库/数据库表'
这样就可以在DB1中直接访问DB2中的表了
网友评论