问题:实际中,我们可能会遇到跨库查询数据的需要。查A机器上a库中的表a->B机器上b库中的表b。两个链接,两个库。
1.配置federated引擎
1.1看是否开启
1.2 如果没开,linux 下修改my.cnf文件,windows修改my.ini文件
1.3 确认开启
2.创建表 sql 语句
1.配置federated引擎
1.1看是否开启
show engines;
1.2 如果没开,linux 下修改my.cnf文件,windows修改my.ini文件
添加一行
1.3 确认开启
我的电脑->管理->服务 重启mysql
再次运行 show engines;
已经yes了。
2.创建表 sql 语句
CONNECTION="mysql://username:password@hostname:port/database/tablename"
此处用双引号,不是单引号。
DROP PROCEDURE if EXISTS pro_createAFromB;
delimiter //
CREATE definer =`root`@`%` PROCEDURE pro_createAFromB()
BEGIN
set @strsql='CREATE TABLE IF NOT EXISTS`day20211013`\
( `VARIANTNAME` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,\
`TIME` datetime(0) NOT NULL,`DATA` double NULL DEFAULT NULL, UNIQUE INDEX `variantname`(`VARIANTNAME`, `TIME`) USING BTREE)\
ENGINE =FEDERATED DEFAULT CHARSET=utf8 CONNECTION="mysql://username:password@hostname:port/database/tablename"';
PREPARE stmt from @strsql;
EXECUTE stmt;
set i=i+1;
#end while;
END;
//
delimiter ;
call pro_createAFromB()