首页 >数据库 >mysql教程 >如何使用联合表和 SSH 隧道执行跨服务器 MySQL SELECT 查询?

如何使用联合表和 SSH 隧道执行跨服务器 MySQL SELECT 查询?

Patricia Arquette
Patricia Arquette原创
2024-12-01 13:31:12793浏览

How Can I Perform Cross-Server MySQL SELECT Queries Using Federated Tables and SSH Tunnels?

通过 SSH 隧道和联合表进行 MySQL 跨服务器选择查询

使用 MySQL 执行跨服务器选择查询,这是一种常见的方法是在其中一台服务器上创建联合表。通过基于远程表创建联邦表,您可以像查询本地数据一样查询数据。

步骤:

  1. 建立 SSH 隧道连接两个服务器。
  2. 在远程服务器上定义一个表。
  3. 创建本地服务器上指向远程表的联合表。使用以下语法:
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';
  1. 创建联合表后,您可以像查询本地表一样对其进行查询。联合表将透明地处理与远程服务器的通信。

示例:

考虑以下设置:

Server IP Database
1.2.3.4 Test
a.b.c.d Test

您可以在服务器 1.2.3.4 上创建联合表来访问服务器 a.b.c.d 上的表,使用以下查询:

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@a.b.c.d:9306/Test/test_table';

创建联合表后,您可以按如下方式查询它:

SELECT * FROM federated_table;

此查询将从服务器 a.b.c.d 上的 test_table 表中检索行

以上是如何使用联合表和 SSH 隧道执行跨服务器 MySQL SELECT 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn