Heim > Datenbank > MySQL-Tutorial > Wie kann ich serverübergreifende MySQL-SELECT-Abfragen mithilfe von föderierten Tabellen und SSH-Tunneln durchführen?

Wie kann ich serverübergreifende MySQL-SELECT-Abfragen mithilfe von föderierten Tabellen und SSH-Tunneln durchführen?

Patricia Arquette
Freigeben: 2024-12-01 13:31:12
Original
728 Leute haben es durchsucht

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

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:

  1. Einen SSH-Tunnel einrichten um die beiden Server zu verbinden.
  2. Definieren Sie eine Tabelle auf dem Remote-Server.
  3. Erstellen Sie eine Verbundtabelle auf dem lokalen Server, der auf die Remote-Tabelle verweist. Verwenden Sie die folgende Syntax:
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';
Nach dem Login kopieren
  1. Sobald die föderierte Tabelle erstellt wurde, können Sie sie wie eine lokale Tabelle abfragen. Die föderierte Tabelle wickelt die Kommunikation mit dem Remote-Server transparent ab.

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';
Nach dem Login kopieren

Sobald die Verbundtabelle erstellt wurde, können Sie sie wie folgt abfragen:

SELECT * FROM federated_table;
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage