MySQL Cross-Server Select-Abfrage über SSH-Tunnel und Federated Tables
Um eine serverübergreifende Select-Abfrage mit MySQL durchzuführen, ein gängiger Ansatz besteht darin, Verbundtabellen auf einem der Server zu erstellen. Durch die Erstellung von Verbundtabellen auf Basis der Remote-Tabellen können Sie die Daten so abfragen, als ob sie sich alle lokal befänden.
Schritte:
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';
Beispiel:
Betrachten Sie das folgende Setup:
Server IP | Database |
---|---|
1.2.3.4 | Test |
a.b.c.d | Test |
Sie können wie folgt eine Verbundtabelle auf Server 1.2.3.4 erstellen, um auf eine Tabelle auf Server a.b.c.d zuzugreifen Abfrage:
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';
Sobald die Verbundtabelle erstellt wurde, können Sie sie wie folgt abfragen:
SELECT * FROM federated_table;
Diese Abfrage ruft Zeilen aus der Tabelle test_table auf dem Server a.b.c.d. ab.
Das obige ist der detaillierte Inhalt vonWie kann ich serverübergreifende MySQL-SELECT-Abfragen mithilfe von föderierten Tabellen und SSH-Tunneln durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!