Dieser Artikel enthält detaillierte Anweisungen zur Behebung verschiedener Kompatibilitätsprobleme mit MySQL-Datenbanken, einschließlich Kompatibilitätsproblemen und Fehlern bei der Tabellenzuordnung.
Kompatibilitätsprobleme
Um Probleme mit der Datenbankinkompatibilität zu vermeiden, sollten Sie sicherstellen, dass die Datenbankversionen auf dem Build- und dem Installationsserver so nah wie möglich beieinander liegen. Wenn die Sicherung auf einer neueren Datenbankversion erstellt wurde als die, auf der sie installiert wird, kann es zu Problemen kommen.
Vergewissern Sie sich am besten, dass der Server, auf dem das Installationsprogramm ausgeführt wird, die gleiche oder eine höhere Versionsnummer hat als der Server, auf dem es erstellt wurde. Wenn die Haupt- und Unterversionen gleich oder nahe beieinander liegen (z. B. [5.7 bis 5.6]), sollte die Migration ohne Probleme funktionieren. Bei einem Versionspaar von [5.7 bis 5.1] ist es wahrscheinlicher, dass es zu Problemen kommt, es sei denn, Sie haben eine sehr einfache Einrichtung. Wenn die Versionen zu weit auseinander liegen, arbeiten Sie mit Ihrem Hosting-Anbieter zusammen, um die MySQL-Engine auf diesem Server zu aktualisieren.
Lösung 1: UTF8MB4 FORMAT
Wenn die aktuelle Version des MySQL-Servers kleiner als 5.5.3 (Release am 8. April 2010) ist, wird die Unterstützung für utf8mb4-Tabellen nicht funktionieren. Das utf8mb4-Format wird nur von MySQL Server 5.5.3+ unterstützt. Es wird dringend empfohlen, die Version des MySQL-Servers auf diesem Server zu aktualisieren, um mit den neuesten Versionen von WordPress kompatibel zu sein und Probleme mit Installationsfehlern zu vermeiden.
Lösung 2: UTF8 INPUTS
Wenn Nicht-ASCII-Zeichen als Teil der Datenbankverbindungszeichenfolge erkannt werden und der MySQL-Server nicht korrekt konfiguriert ist, können Sie keine Verbindung herstellen. Dieses Problem kann durch Aktualisierung der MySQL my.ini-Konfiguration behoben werden.
Fügen Sie die Einstellung character_set_server=utf8 unter [mysqld] hinzu und starten Sie den Datenbankserver neu. Möglicherweise muss dieser Wert nur auskommentiert werden.
Lösung 3: MARIA-DB SETUPS
Wenn eine Version von 10.N.N angezeigt wird, handelt es sich bei der Datenbankdistribution um eine MariaDB-Variante von MySQL. Obwohl die Distributionen sehr ähnlich sind, gibt es einige feine Unterschiede. Einige Betriebssysteme geben die Version wie "5.5.5-10.1.21-MariaDB" an, um die Korrelation zwischen beiden anzuzeigen. Bitte besuchen Sie die Online-Seite MariaDB versus MySQL - Kompatibilität für weitere Details.
Bitte beachten Sie, dass einige Meldungen lediglich Hinweise sind. Es wird dringend empfohlen, mit dem Installationsvorgang fortzufahren und die Datei installer-log.txt sowie den Installationsbericht in Schritt 3 des Installationsprogramms genau zu überwachen. Achten Sie auf Hinweise/Warnungen/Fehler in diesen Dateien, um sicherzustellen, dass bei der Installation keine Fehler aufgetreten sind. Sollten Probleme gefunden werden, besuchen Sie bitte die FAQ-Seiten und lesen Sie die Frage "Wie behebe ich Datenbankfehler oder allgemeine Warnungen im Installationsbericht?"
Lösung 4: TABELLEN ERSTELLEN
Das Erstellen von Tabellen in MySQL und MariaDB ist sehr ähnlich; es gibt jedoch einige kleine Unterschiede, die manchmal (nicht häufig) Probleme verursachen können. Um die Unterschiede zwischen den beiden Systemen zu sehen, lesen Sie die beiden Dokumentationen hier:
Wie Sie sehen können, stimmen sie nicht eins zu eins überein (MariaDB hat Optionen, die MySQL nicht hat). Wenn Sie also versuchen, eine CREATE-Abfrage auszuführen, die unter MariaDB funktioniert, aber eine Tabellenoption hat, die MySQL nicht unterstützt, kann sie fehlschlagen. Die derzeitige Lösung besteht darin, die fehlerhaften Tabellenoptionen aus dem DB-Dump zu entfernen, indem Sie die Datei manuell suchen und ersetzen.
Probleme mit der Tabellensortierung
Wie lassen sich Kompatibilitätsmodus- und "Unbekannte Sortierung"-Fehler beheben?
Es gibt 4 Möglichkeiten, dieses Problem zu lösen. Option 1 ist der schnellste, einfachste und sicherste Weg, dieses Problem zu lösen.
Unbekannte Kollation Übersicht
Ein "Unknown collation"-Fehler bedeutet, dass der MySQL-Server, auf dem das Backup installiert ist (Zielserver), älter ist als die MySQL-Engine, auf der Sie das Backup erstellt haben. Eine Fehlermeldung wie die folgende:
ERROR database error write 'Unknown collation: 'utf8mb4_unicode_ci'
wird ausgelöst, weil die verwendete MySQL-Version dieses Tabellenformat nicht unterstützt. Sie können den Versionsvergleich des MySQL-Servers einsehen, indem Sie im Installationsprogramm auf die Schaltfläche "Verbindung testen" klicken oder die Datei installer-log.txt einsehen. Die Ausgabe sieht dann etwa so aus:
MYSQL-VERSION: Dieser Server: 5.4.22 – Build-Server: 5.7.10
Option 1 - Datenbank-Software aktualisieren
Der sauberste und sicherste Weg, das Problem "Unknown Collation" zu beheben, besteht darin, den Ziel-MySQL-Server auf die gleiche oder eine neuere Version zu aktualisieren als die, von der das Backup erstellt wurde. Zu den häufigsten Formatfehlern gehören:
- utf8mb4_unicode_ci: MySQL Server 5.5.3+ ist erforderlich.
- utf8mb4_unicode_520_ci: MySQL Server 5.6+ ist erforderlich.
Beste Lösung: Der beste und einfachste Weg, dieses Problem zu lösen, ist, Ihren Hoster zu bitten, Ihr Konto auf einen MySQL-Server zu verschieben, der den von Ihnen benötigten Sortierungstyp unterstützt (siehe Beispiel oben). Geben Sie einfach die Fehlermeldung an, die Sie erhalten, und sie können Ihnen helfen, auf den richtigen Server umzuziehen.
Die meisten Hoster werden den aktuellen Server, auf dem sich Ihre Website befindet, nicht aktualisieren; sie sollten jedoch in der Lage sein, Ihr Konto problemlos auf einen neueren Server zu verschieben. Dies ist eine gängige Praxis, und ein guter Hoster sollte in der Lage sein, Ihnen ganz einfach zu helfen.
Wenn Sie eine niedrigere Version als 5.5.3 einsetzen, dann verwenden Sie eine sehr veraltete Version von MySQL Server. 5.5.3 wurde 2010 veröffentlicht, was bedeutet, dass die Version des MySQL-Servers, die Sie verwenden, noch älter ist. Wir raten Benutzern dringend, mit ihren Hosts zusammenzuarbeiten, um aktuelle Software für verbesserte Sicherheit und Leistung zu verwenden und mit den Updates von WordPress Core in Einklang zu bleiben. Lassen Sie nicht zu, dass ein mieser Hoster veraltete Software auf Ihrer Website verwendet.
Option 2 - Standard-Zeichensatz und Sortierung
Im Installationsprogramm ist in Schritt 2 unter Optionen das Kontrollkästchen "Legacy" nicht mehr vorhanden. Es wird jetzt jedoch automatisch erkannt und eingestellt. Wenn der Zeichensatz und die Sortierung nicht explizit definiert sind, erscheint ein Hinweis, dass der Standardzeichensatz und die Standard-Sortierung verwendet werden.
Beim Erstellen einer Datenbanktabelle kann es vorkommen, dass die verwendete MySQL-Version die Sortierart der MySQL-Version, in der die Tabelle erstellt wurde, nicht unterstützt. In diesem Fall greift das Installationsprogramm automatisch auf den Sortierungstyp zurück und versucht, die Tabelle zu erstellen.
Option 3 - Kompatibilitätsmodus ausführen
Der Mysqldump-Kompatibilitätsmodus hilft dabei, eine Datenbank-SQL-Skriptausgabe zu erzeugen, die mit anderen Datenbanksystemen oder mit älteren MySQL-Servern besser kompatibel ist.
Der Duplicator unterstützt mehrere Kompatibilitätsmodi, die alle nur verfügbar sind, wenn der mysqldump-Modus im Plugin aktiviert ist. Der Kompatibilitätsmodus kann beim Erstellen eines Backups mit der Option mysqldump aktiviert werden.
Der Vervielfältiger erlaubt den Kompatibilitätsmodus nur während des Erstellungsprozesses. Bei der Erstellung von Vorlagen oder mit Zeitplänen ist er nicht zulässig. Der Grund für diese Einstellung ist, von der Verwendung dieser Einstellungen abzuraten und das eigentliche Problem zu beheben, nämlich die Aktualisierung Ihres Datenbankservers.
Datenbank-Upgrades: Der Kompatibilitätsmodus sollte nur als letzter Ausweg verwendet werden. Die empfohlene Vorgehensweise zur Behebung von Datenbankproblemen besteht darin, sicherzustellen, dass beide Datenbankserver auf dem neuesten Stand sind und in ihren Versionsnummern sehr nahe beieinander liegen (siehe Option 1). Wenn der Datenbankserver, auf dem Sie die Sicherung erstellt haben, beispielsweise die Version 5.7.5 hat, sollte der Datenbankserver, auf dem Sie die Sicherung installieren, mindestens die Version 5.7.N haben. Bitten Sie Ihren Hoster oder Server-Administrator, den MySQL-Server auf eine neuere Version zu aktualisieren, falls möglich. Wenn Ihr Hoster nicht auf eine neuere Version upgraden will, bitten Sie ihn, auf eine möglichst hohe Version zu aktualisieren.
Bewahrung der Daten: Zwar gibt es im Internet mehrere Workarounds (Option 4), die erklären, wie Sie die aktuelle SQL-Datei ändern oder den Kompatibilitätsmodus von mysqldump verwenden können, aber das Hauptproblem besteht darin, dass Sie die Daten in einem Format gespeichert haben und sie nun konvertieren müssen. Diese Techniken können zu einem späteren Zeitpunkt zu Datenverlusten und Inkompatibilitätsproblemen führen. Der richtige Ansatz ist ein Upgrade der MySQL-Software.
Probieren Sie beide Modi aus:
- Duplicator unterstützt derzeit zwei verschiedene Modi: Mysqldump und PHP-Modus (siehe Einstellungen " Option Backups).
- Wenn Sie auf Zeichenprobleme stoßen und Ihnen die Optionen ausgehen, können Sie versuchen, die Datenbank in beiden Modi zu erstellen, um zu sehen, ob der eine oder der andere die Probleme löst.
Option 4 - Manuelle Konfigurationen
Diese Optionen sind für fortgeschrittene Benutzer gedacht und sollten mit Bedacht durchgeführt werden. Die Optionen erfordern eine Aktualisierung des Skripts database.sql oder eine Aktualisierung der Sortierungstypen der Quelldatenbanktabelle. Nachfolgend finden Sie drei verschiedene Ansätze; nur eine Option ist erforderlich, um das Problem zu beheben.
Datenbank.sql aktualisieren
Bei Problemen mit "unbekannter Sortierung" können Sie die folgenden Schritte versuchen:
- Entpacken Sie die Archiv-Zip-Datei manuell.
- Öffnen Sie die Datei database.sql mit Notepad und suchen und ersetzen Sie die Kollationen. Zum Beispiel könnten Sie:
- Ersetzen Sie: „utf8mb4“ durch „utf8“.
- Ersetzen Sie: „utf8_unicode_520_ci“ durch „utf8_general_ci“.
Probieren Sie diese Optionen immer zuerst in einer Sandbox und niemals auf einer Produktionsseite aus, bis Sie mit den Ergebnissen zufrieden sind.
Navigieren Sie dann zur Datei installer.php auf dem Server und wählen Sie "Erweitert" und aktivieren Sie "Manuelles Extrahieren".
Dies kann auch mit anderen Sortierungen versucht werden (d. h. ersetzen Sie "collation_type_1" durch "collation_type_2").
Quelldatenbank mit Code aktualisieren
Diese Option setzt voraus, dass Sie Ihr System genau kennen und im Vorfeld Sicherungskopien erstellt haben. Mit dem Skript können Sie die Sortierung auf dem Build-Server so ändern, dass sie vom Zielserver unterstützt wird. Das vollständige Skript kann auf Stack Overflow eingesehen werden: http://stackoverflow.com/a/29939906/2808424
Quelldatenbank mit IDE aktualisieren
Wenn Sie sich mit der Ausführung des obigen Codes nicht wohl fühlen, können Sie auch eine IDE oder ein GUI-Tool verwenden, mit dem Sie die Tabellensortierungen entweder mit SQL-Anweisungen oder über eine Schnittstelle manuell ändern können. Auch diese Optionen setzen voraus, dass Sie Ihr System genau kennen und im Vorfeld Backups erstellt haben.
Nachfolgend finden Sie eine leicht verständliche Schritt-für-Schritt-Anleitung für die Aktualisierung der Sortierungen über eine IDE wie phpMyAdmin: