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

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

Patricia Arquette
发布: 2024-12-01 13:31:12
原创
774 人浏览过

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中文网其他相关文章!

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