MYSQL跨服务器实现数据查询

最近业务,是要实现在一个中间数据库存储其他不同数据库的表数据

可以用FEDERATED存储引擎解决。

首先查看中间数据库的FEDERATED状态,命令行为:

show engines;

如果字段为NO,需要手动开启。

找到mysql的配置文件(my.ini)

然后再【mysqid】下加上一句federated

重新启动数据库,再次查询状态

开始建表,表名随便起,但字段,表结构必须一致:

CREATE TABLE `incoming_count_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '收货统计标识',
  `site_no` varchar(20) NOT NULL DEFAULT '' COMMENT '据点编号',
  `trans_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '事务状态',
  `supplier_id` int(11) NOT NULL COMMENT '供应商标识',
  `supplier_name` varchar(200) NOT NULL DEFAULT '' COMMENT '供应商名称',
  `po_no` varchar(50) NOT NULL DEFAULT '' COMMENT '采购单号',
  `call_date` datetime DEFAULT NULL COMMENT '要号日期',
  `impforecast_print_date` datetime DEFAULT NULL COMMENT '采购订货单打印时间',
  `imporder_print_date` datetime DEFAULT NULL COMMENT '进货单据打印时间',
  `whole_qty` decimal(20,6) NOT NULL DEFAULT '0.000000' COMMENT '整箱箱数',
  `tear_qty` decimal(20,6) NOT NULL DEFAULT '0.000000' COMMENT '拆零箱数',
  `remark` varchar(200) NOT NULL DEFAULT '' COMMENT '备注',
  `create_user` int(11) NOT NULL DEFAULT '0' COMMENT '登录人',
  `create_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '登录日期',
  `update_user` int(11) NOT NULL DEFAULT '0' COMMENT '修改人',
  `update_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改日期',
  PRIMARY KEY (`id`)
) ENGINE=FEDERATED  CONNECTION='mysql://root:123456@192.168.100.100:3306/fle_statistics/incoming_count_info' AUTO_INCREMENT=219 DEFAULT CHARSET=utf8 COMMENT='收货统计表';

关键是在建表中使用了FEDERATED存储引擎即:ENGINE=FEDERATED

映射表完成,远程表数据的改变,映射表跟随改变

跨服务器查询,查本地映射表即可!

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值