gdjlc

培养良好的习惯,每天一点一滴的进步,终将会有收获。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

MySQL同个服务器下,要进行跨数据库进行查询,只需在表前加上数据库名就可以。
如果要在跨服务器查询,服务器A查询服务器B,则需要在服务器A开启federated引擎(默认关闭)以进行映射表查询。
MySQL执行show engines命令可以查看federated引擎的是否关闭状态。

  

 启用FEDERATED引擎,Linux通过vim /etc/my.cnf修改(Windows修改my.ini),在[mysqld] 下加上federated后保存

 

并重启数据库服务

service mysqld restart

在mysql中创建远程服务器数据库中的需要映射的表,数据结构一样,映射表名称可以不同。

CREATE TABLE `user_remote` (
`id` bigint(20) NOT NULL COMMENT '主键',
`name` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
`create_date` datetime NULL DEFAULT '1000-01-01 00:00:00' COMMENT '创建时间',
`created_by` bigint(20) NULL DEFAULT NULL COMMENT '创建人'
) ENGINE=FEDERATED CONNECTION='mysql://root:passward@172.16.10.10:3306/db/user';

ENGINE=FEDERATED,使用federated引擎,修改用户名,密码,地址,端口号,数据库,表

这样就可以将远程的user表数据实时映射到hn_user表中,实现mysql跨服务器查询数据。

 

posted on 2022-11-02 11:59  gdjlc  阅读(2373)  评论(0编辑  收藏  举报