跨服务器操作mysql数据库的需求,mysql提供了federated引擎,进行表映射,然后进行操作
步骤:
-
确认federated引擎是否启用,执行:show engines查看引擎状态,找到federated的Support,默认是关闭的,即NO
-
启用federated引擎,修改mysql配置文件,在[mysqld]下添加federated
-
重启mysql
-
再次查看引擎状态
-
以上,在需要做表映射的mysql服务上开户federated引擎支持
-
然后创建一张与目标表的表结构一样的数据表,唯一区别的是表描述信息添加:ENGINE=FEDERATED CONNECTION=‘mysql://:@://’ 示例:
1 2 3 4 5 6 7 8
CREATE TABLE `test` ( `id_` INT NOT NULL AUTO_INCREMENT, `ts` TIMESTAMP NOT NULL DEFAULT NOW(), PRIMARY KEY (`id_`) ) ENGINE=FEDERATED CONNECTION='mysql://<user>:<password>@<hostname>:<port>/<database>/<table>' COMMENT='for test' COLLATE='utf8mb4_unicode_ci' ;
至此,跨服务器表映射完成!
经测试,在映射表的服务器与被映射表的服务器,都可以进行查询、添加等操作