首页 > 数据库 > mysql教程 > 如何连接不同MySQL服务器上的表?

如何连接不同MySQL服务器上的表?

DDD
发布: 2024-12-18 12:30:11
原创
879 人浏览过

How Can I Join Tables Across Different MySQL Servers?

在 MySQL 中连接来自不同服务器的表

尝试连接来自两个不同服务器(server1 和 server2)的表可能会遇到错误。以下是使用 MySQL 的 FEDERATED ENGINE 克服这一挑战的方法:

使用联合表

要弥合服务器之间的差距,请基于远程表创建一个联合表。两个表的结构必须保持相同。

示例代码:

基于名为 test_table 的远程表创建名为 federated_table 的联合表:

CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
登录后复制

通过建立联合连接,您可以跨服务器连接表,就像它们一样local:

SELECT a.field1, b.field2
FROM federated_table AS a
INNER JOIN [server2, 3312].[db2].table2 AS b
ON a.field1 = b.field2;
登录后复制

注意: fed_user 帐户必须在两台服务器上拥有适当的权限才能建立联合连接。

以上是如何连接不同MySQL服务器上的表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板