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
Freigeben: 2024-11-27 22:40:13
Original
448 Leute haben es durchsucht

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

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

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!

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