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指明如何连接到远程服务器上的连接字符串之外, 这个表的结构必须完全与远程表的结构相同. 远程主机信息指明本地服务器要连接到的远程服务器, 数据库和表信息指明哪一个远程表要被作为数据文件来用