Geschäftsszenario: Abfragen von Tabellen in verschiedenen Datenbanken Die zu verknüpfenden Tabellen sind beispielsweise: Tabelle A in Datenbank A auf Maschine A und Tabelle B in Datenbank B auf Maschine B. In diesem Fall ist es unmöglich, „select A.id,B.id from A left join B on ~~~;“ auszuführen, aber die Geschäftsanforderungen sind unveränderlich und das Datenbankdesign ist unveränderlich, was ein echter Krampf ist. . Lösung: Erstellen Sie eine Tabelle B in Datenbank A auf Computer A. . . Ich mache keine Witze, wir verwenden die Methode zum Erstellen von Tabellen basierend auf der föderierten Engine von MySQL. Beispiel einer Anweisung zur Tabellenerstellung: CREATE TABLE `table_name`(......) ENGINE = FEDERATED CONNECTION = 'mysql://[Benutzername]:[Passwort]@[Standort]:[Port]/[Datenbankname]/[Tabellenname]' Voraussetzung: Ihr MySQL muss die föderierte Engine unterstützen (führen Sie „show engines“ aus, um zu prüfen, ob sie unterstützt wird). Wenn eine FEDERATED-Engine vorhanden ist, aber der Support auf NO steht, bedeutet dies, dass Ihr MySQL diese Engine installiert, aber nicht aktiviert hat. Fügen Sie am Ende der Datei my.cnf eine Zeile „federated“ hinzu und starten Sie MySQL neu. Wenn überhaupt keine FEDERATED-Zeile vorhanden ist, bedeutet dies, dass Ihre MySQL-Engine nicht installiert ist und Sie nicht glücklich spielen können. Bitten Sie am besten Ihren Betrieb und Ihre Wartung, das Problem zu beheben, da der nächste Schritt relativ groß ist und ich nicht weiß, wie ich das machen soll. Erklärung: Die von der FEDERATED-Engine erstellte Tabelle verfügt nur über eine lokale Tabellendefinitionsdatei, und die Datendatei befindet sich in der Remote-Datenbank. Mit dieser Engine können Remote-Datenzugriffsfunktionen ähnlich wie DBLINK unter Oracle implementiert werden. Das heißt, diese Methode zur Tabellenerstellung erstellt nur eine Tabellenstrukturdatei der Tabelle B in Datenbank A. Der Tabellenindex, die Daten und andere Dateien befinden sich weiterhin in Datenbank B auf Maschine B. Dies entspricht der Erstellung einer Verknüpfung zu Tabelle B in Datenbank A. Der Schmerz in den Eiern ist also weg. . Einige Hinweise: 1. Die lokale Tabellenstruktur muss exakt mit der Remote-Tabelle übereinstimmen. 2. Die Remote-Datenbank ist derzeit auf MySQL beschränkt 3. Keine Unterstützung für Transaktionen 4. Die Änderung der Tabellenstruktur wird nicht unterstützt Andere Internetnutzer fügten hinzu: Tabelle erstellen, wenn `logintoken` nicht vorhanden ist ( `id` int(11) NICHT NULL AUTO_INCREMENT, `Typ` char(1) NICHT NULL STANDARD '0', `loginName` varchar(20) DEFAULT NULL, `Token` varchar(2000) DEFAULT NULL, `tokenExpiredTime` Zeitstempel NULL DEFAULT NULL, PRIMÄRSCHLÜSSEL (`id`) )ENGINE=FEDERATED CONNECTION='mysql://root:[email protected]:3306/zysso/logintoken'; Um die Remote-5.12-Logintoken-Tabelle zu verwenden, müssen Sie FEDERATED nur selbst aktivieren. 5.12 muss es nicht aktivieren. Das könnte Sie auch interessieren:
|
<<: Lösung zur Codeaufteilung im Vue-Projekt
>>: Ein auf Vue-cli basierender Codesatz unterstützt mehrere Projekte
Inhaltsverzeichnis 1. Was ist ein Index? 2. Warum...
Inhaltsverzeichnis 1. Wie entsteht Cross-Domain? ...
Vorwort Vergessene Passwörter sind ein Problem, d...
Dieser Artikel stellt hauptsächlich den Kreisdiag...
Diese Arbeit nutzt das Wissen der Front-End-Entwi...
Im MySQL-Betrieb und bei der Wartung möchte ein F...
Was ist der Grund für den Fehler Last_IO_Errno:12...
Details zu den Parametern der Version FFMPEG 3.4....
In diesem Artikel erfahren Sie, wie Sie mit Vue W...
Seine Funktion besteht darin, einen globalen Stil ...
Eine direkte Verwendung von Breite und Höhe ist ni...
In diesem Artikelbeispiel wird der spezifische Co...
MySQL ist ein Open-Source-Verwaltungssystem für k...
v-model ist eine Vue-Direktive, die eine bidirek...
Inhaltsverzeichnis Tabellenkonflikte finden und b...