mysql处理跨连接(dblink)

首先查看是否支持federated 引擎

如果不支持,在my.ini中增加一行

federated

重启mysql即可。

引擎说明 
本地MySQL数据库要访问远程MySQL数据库的表中的数据, 必须通过FEDERATED存储引擎来实现. 有点类似Oracle中的 
数据库链接(DBLINK). 要允许这个存储引擎, 当构建MySQL时使用--with-federated-storage-engine来configure.  
当创建一个FEDERATED表的时候, 服务器在数据库目录创建一个表定义文件. 文件由表的名字开始, 并有一个.frm扩展名.

本地服务器上为访问远程表创建一个FEDERATED表

CREATE TABLE "sys_user" (
  "id" varchar(200) NOT NULL,
  "name" varchar(200) NOT NULL,
  "phone" varchar(200) DEFAULT NULL,
  "registTime" datetime DEFAULT NULL,
  "email" varchar(200) DEFAULT NULL,
  "lastLonginTime" datetime DEFAULT NULL,
  "remark" varchar(1000) DEFAULT NULL,
  "change_password" tinyint(4) DEFAULT NULL COMMENT 为1时需要修改密码,为0不需要,
  "password_date" datetime DEFAULT NULL,
  PRIMARY KEY ("id")
) ENGINE=FEDERATED CONNECTION=mysql://username:password@remote_host:3306/db_name/table_name;

除了ENGINE选项应该是FEDERATED, 并且CONNECTION表选项是给FEDERATED指明如何连接到远程服务器上的连接字符串之外, 这个表的结构必须完全与远程表的结构相同. 远程主机信息指明本地服务器要连接到的远程服务器, 数据库和表信息指明哪一个远程表要被作为数据文件来用

经验分享 程序员 微信小程序 职场和发展