通过 SSH 隧道和联合表进行 MySQL 跨服务器选择查询
使用 MySQL 执行跨服务器选择查询,这是一种常见的方法是在其中一台服务器上创建联合表。通过基于远程表创建联邦表,您可以像查询本地数据一样查询数据。
步骤:
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';
示例:
考虑以下设置:
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中文网其他相关文章!