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

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-27 22:40:13446Durchsuche

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

Serverübergreifende MySQL-Auswahlabfragen mithilfe von föderierten Tabellen

MySQL bietet einen Mechanismus zum Abfragen von Daten über verschiedene Datenbankserver hinweg durch die Verwendung von föderierten Tabellen. Dies kann besonders nützlich sein, wenn die Server voneinander entfernt sind und direkte Verbindungen nicht möglich sind.

In dem von Ihnen beschriebenen Szenario mit zwei MySQL-Servern unter 1.2.3.4 und a.b.c.d, die jeweils eine Datenbank namens Test hosten, ist dies möglich Verwenden Sie eine föderierte Tabelle, um Zeilen von einem Server auszuwählen und sie in eine Tabelle auf dem anderen einzufügen.

Um eine föderierte Tabelle zu erstellen, müssen Sie zunächst einen SSH-Tunnel einrichten zwischen den beiden Servern. Dadurch können Sie über den anderen (den lokalen Server) eine Verbindung zu einem Server (dem Remote-Server) herstellen.

Sobald der SSH-Tunnel eingerichtet ist, können Sie die Verbundtabelle auf dem lokalen Server wie folgt erstellen:

CREATE TABLE federated_table (
    id     INT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:port/database_name/table_name';

wobei:

  • fed_user ist ein Benutzer, der Zugriff auf die Fernbedienung hat Tabelle
  • remote_host ist die IP-Adresse des Remote-Servers
  • Port ist die Portnummer der MySQL-Instanz auf dem Remote-Server
  • Datenbankname ist der Name der Remote-Datenbank, die Folgendes enthält die Tabelle
  • table_name ist der Name der Remote-Tabelle

Sobald die föderierte Tabelle ist erstellt wurde, können Sie darauf SELECT-Abfragen ausführen, um Daten aus der Remote-Tabelle abzurufen. Die Ergebnisse der Abfrage können dann mithilfe der INSERT-Anweisung in eine Tabelle auf dem lokalen Server eingefügt werden.

Hier ist eine Beispielabfrage, die Zeilen aus der Verbundtabelle auswählt und sie in eine lokale Tabelle namens local_table einfügt:

INSERT INTO local_table (id, name, other)
SELECT id, name, other FROM federated_table;

Das obige ist der detaillierte Inhalt vonWie kann ich serverübergreifende MySQL-SELECT-Abfragen mithilfe von föderierten Tabellen durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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