Heim  >  Artikel  >  Datenbank  >  So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage

So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage

PHPz
PHPznach vorne
2023-06-02 22:32:522042Durchsuche

Situation 1: Zwei Bibliotheken befinden sich auf demselben physischen Host

So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage

gemeinsame Abfrage (zwei verschiedene Bibliotheken, die Bibliothek „myemployees“ und die Bibliothek „shoppingCart“) befinden sich auf demselben physischen Host, beide auf meinem lokalen Computer.

So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage

#联合查询(不同的2个库,myemployees库和shoppingCart库)
SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5
UNION
SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;
#
SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5
UNION ALL
SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;

Szenario 2: Die beiden Bibliotheken befinden sich nicht auf demselben physischen Host (d. h. die beiden Bibliotheken befinden sich auf unterschiedlichen physischen Hosts)

Um den Effekt zu demonstrieren, verwende ich hier meine virtuelle Maschine und die Das Linux-System ist in meiner virtuellen Maschine (Centos) installiert, die MySQL-Datenbank wurde im Linux-System installiert, der MySQL-Datenbankdienst wurde gestartet und alle Umgebungen wurden fertiggestellt.

Die IP meines Linux-Systems (Centos) ist 192.168.117.66. Ich habe vor, eine gemeinsame Abfrage zwischen meiner lokalen Autorentabelle und der Remote-Benutzertabelle durchzuführen.

Nachdem wir unter Linux SHOW CREATE TABLE `user`; Die Anweisung besteht, um es klar auszudrücken, darin, eine Verknüpfung zur Remote-Datenbankverbindung (Remote-Datenbankverbindungsverknüpfung) in meiner lokalen Datenbank zu erstellen. Es ähnelt der Desktop-Verknüpfung auf dem Desktop in unserem Windows-Betriebssystem. Wir können ein Softwaresymbol öffnen, indem wir auf den Desktop doppelklicken. So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage

Führen Sie einfach die obige Anweisung aus. So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage

So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende AbfrageÜbrigens gibt es noch etwas zu beachten:

So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende AbfrageSie müssen überprüfen, ob die

FEDERATED-Engine

Ihrer lokalen MySQL-Datenbank aktiviert ist. So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage

CREATE TABLE IF NOT EXISTS `user` (
  `id` INT(11) DEFAULT NULL,
  `name` VARCHAR(20) DEFAULT NULL
)

Wenn FEDERATED NO ist, bedeutet dies, dass es nicht aktiviert ist und Sie die Konfigurationsdatei der MySQL-Datenbank ändern müssen.

Ändern Sie die Konfigurationsdatei der lokalen MySQL-Datenbank und fügen Sie federated am Ende der Konfigurationsdatei hinzu, wie unten gezeigt:

Wenn Sie ein Windows-System verwenden, ändern Sie die Datei So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfragemy.ini

. Wenn Sie ein Linux-System verwenden, ändern Sie die Datei

my.cnf.

Denken Sie daran, den MySQL-Dienst neu zu starten, nachdem Sie die Konfigurationsdatei geändert haben.

Linux startet den MySQL-Dienst neu, Dienst MySQL neu starten

.

Starten Sie den MySQL-Dienst in Windows neu. Geben Sie im DOS-Fenster den Namen des Net Stop MySQL-Dienstes und dann den Namen des Net Start MySQL-Dienstes ein.

OK, nachdem alles erledigt ist, führen Sie die folgende SQL-Anweisung aus, um die Abfrageergebnisse der datenbankübergreifenden Abfrage anzuzeigen.

ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';这句话。
So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage

CREATE TABLE IF NOT EXISTS `user` (
  `id` INT(11) DEFAULT NULL,
  `name` VARCHAR(20) DEFAULT NULL
)ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';

Bei der oben genannten server- und datenbankübergreifenden Abfrage müssen Sie die folgenden Punkte beachten: 1. Diese datenbankübergreifende Abfragemethode unterstützt keine Transaktionen Es ist am besten, keine Transaktionen zu verwenden.

2. Die Tabellenstruktur kann nicht geändert werden. So implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage

3.MySQL verwendet diese datenbankübergreifende Abfragemethode. Die Remote-Datenbank unterstützt derzeit nur MySQL und andere Datenbanken unterstützen sie nicht.

4. Die Tabellenstruktur muss vollständig mit der Zieldatenbanktabelle übereinstimmen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine gemeinsame MySQL-Remote-Datenbank-übergreifende Abfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen