Umgang mit Datenbankkompatibilitätsproblemen
Dieser Artikel bietet detaillierte Anleitungen zur Behebung verschiedener MySQL-Datenbankkompatibilitätsprobleme, einschließlich Kompatibilitätsbedenken und Tabellenkollationsfehlern.
Kompatibilitätsprobleme
Um Datenbankinkompatibilitätsprobleme zu vermeiden, stellen Sie sicher, dass die Datenbankversionen zwischen dem Build- und dem Installer-Server so nah wie möglich beieinander liegen. Wenn das Backup auf einer neueren Datenbankversion als der, auf der es installiert wird, erstellt wurde, können Probleme auftreten.
Es ist am besten sicherzustellen, dass der Server, auf dem der Installer ausgeführt wird, die gleiche oder eine höhere Versionsnummer hat als der, auf dem er erstellt wurde. Wenn die Haupt- und Nebenversionen gleich oder ähnlich sind (z. B. [5.7 bis 5.6]), sollte die Migration ohne Probleme funktionieren. Ein Versionspaar [5.7 bis 5.1] verursacht eher Probleme, es sei denn, Sie haben eine sehr einfache Konfiguration. 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 aktuell erkannte MySQL-Serverversion unter 5.5.3 (veröffentlicht am 8. April 2010) liegt, funktioniert die Unterstützung für utf8mb4-Tabellen nicht. Das utf8mb4-Format wird nur in MySQL Server 5.5.3+ unterstützt. Es wird dringend empfohlen, Ihre MySQL-Serverversion auf diesem Server zu aktualisieren, um mit neueren WordPress-Versionen kompatibler zu sein und Probleme mit Installationsfehlern zu vermeiden.
Lösung 2: UTF8 EINGABEN
Wenn Nicht-ASCII-Zeichen als Teil der Datenbankverbindungszeichenfolge erkannt werden und der MySQL-Server nicht richtig 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. Dieser Wert muss möglicherweise nur auskommentiert werden.
Lösung 3: MARIA-DB SETUPS
Wenn eine Version 10.N.N angezeigt wird, handelt es sich bei der Datenbankverteilung um einen MariaDB-Flavor von MySQL. Obwohl die Distributionen sehr ähnlich sind, gibt es einige subtile Unterschiede. Einige Betriebssysteme melden die Version wie „5.5.5-10.1.21-MariaDB“, was die Korrelation beider zeigt. 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 Installationsprozess fortzufahren und die Datei „installer-log.txt“ sowie den Installationsbericht aus Schritt 3 des Installers genau zu verfolgen. Achten Sie darauf, in diesen Bereichen nach Hinweisen/Warnungen/Fehlern zu suchen, um zu überprüfen, ob der Installationsprozess keine Fehler erkannt hat. Wenn Probleme gefunden werden, besuchen Sie bitte die FAQ-Seiten und sehen Sie sich die Frage „Wie behebt man Datenbankfehler oder allgemeine Warnungen im Installationsbericht?“ an.
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 beiden anzuzeigen, sehen Sie sich die beiden Dokumentationen hier an:
Wie Sie sehen können, sind sie keine exakte Übereinstimmung (MariaDB hat Optionen, die MySQL nicht hat). Wenn Sie also versuchen, eine CREATE-Abfrage auszuführen, die auf MariaDB funktioniert hat, aber eine Tabellenoption enthält, die MySQL nicht unterstützt, kann dies fehlschlagen. Die aktuelle Lösung besteht darin, die fehlerhaften Tabellenoptionen aus dem DB-Dump zu entfernen, indem Sie die Datei manuell suchen und ersetzen.
Tabellenkollationsprobleme
Wie behebt man Kompatibilitätsmodus & „Unbekannte Kollation“-Fehler?
Es gibt 4 Möglichkeiten, dieses Problem zu lösen. Option 1 ist der schnellste, einfachste und sicherste Weg, dieses Problem zu lösen.
Übersicht über unbekannte Kollationen
Ein „Unbekannte Kollation“-Fehler bedeutet, dass der MySQL-Server, auf dem die Installation stattfindet (Zielserver), älter ist als die MySQL-Engine, auf der Sie das Backup erstellt haben. Eine Fehlermeldung wie diese:
FEHLER Datenbankfehler beim Schreiben „Unbekannte Kollation: ‚utf8mb4_unicode_ci‘“
wird ausgelöst, da die verwendete MySQL-Version dieses Tabellenformat nicht unterstützt. Sie können die MySQL-Serverversionsvergleichung anzeigen, indem Sie auf die Schaltfläche „Verbindung testen“ im Installer klicken oder die Datei „installer-log.txt“ einsehen. Die Ausgabe sieht ungefähr so aus:
MYSQL VERSION: Dieser Server: 5.4.22 — Build-Server: 5.7.10
Option 1 – Datenbanksoftware aktualisieren
Der sauberste und sicherste Weg, das Problem „Unbekannte Kollation“ zu beheben, ist die Aktualisierung Ihres Ziel-MySQL-Servers auf die gleiche oder eine neuere Version als die, auf der das Backup erstellt wurde. Die häufigsten Formatfehler sind:
- utf8mb4_unicode_ci: MySQL-Server 5.5.3+ erforderlich.
- utf8mb4_unicode_520_ci: MySQL-Server 5.6+ 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 benötigten Kollationstyp unterstützt (siehe Beispiel oben). Geben Sie ihm einfach die Fehlermeldung, die Sie erhalten, und er kann Ihnen helfen, auf den richtigen Server zu wechseln.
Die meisten Hoster werden den aktuellen Server, auf dem Ihre Website läuft, nicht aktualisieren. Sie sollten jedoch in der Lage sein, Ihr Konto problemlos auf einen neueren Server zu verschieben. Dies ist eine sehr gängige Praxis und ein guter Hoster sollte Ihnen ziemlich leicht helfen können.
Wenn Sie eine Version unter 5.5.3 ausführen, verwenden Sie eine sehr veraltete Version des MySQL-Servers. 5.5.3 wurde 2010 veröffentlicht, was bedeutet, dass die von Ihnen verwendete MySQL-Serverversion noch älter ist. Wir empfehlen den Benutzern dringend, mit ihren Hosts zusammenzuarbeiten, um aktuelle Software für verbesserte Sicherheit und Leistung zu verwenden und die Updates des WordPress-Kerns einzuhalten. Lassen Sie nicht zu, dass ein schlechter Host veraltete Software auf Ihrer Website verwendet.
Option 2 – Standard-Zeichensatz und Kollation
Im Installer in Schritt 2 unter Optionen existiert die Checkbox „Legacy“ nicht mehr. Sie wird jedoch jetzt automatisch erkannt und gesetzt. Wenn der Zeichensatz und die Kollation nicht explizit definiert sind, erscheint eine Benachrichtigung, dass der Standard-Zeichensatz und die Standard-Kollation verwendet werden.
Beim Erstellen einer Datenbanktabelle unterstützt die verwendete MySQL-Version möglicherweise nicht den Kollationstyp der MySQL-Version, auf der die Tabelle erstellt wurde. In diesem Szenario greift der Installer automatisch auf einen Fallback-Kollationstyp zurück, um zu versuchen, die Tabelle zu erstellen.
Option 3 – Kompatibilitätsmodus ausführen
Der Mysqldump-Kompatibilitätsmodus hilft, eine Datenbank-SQL-Skriptausgabe zu erzeugen, die mit anderen Datenbanksystemen oder älteren MySQL-Servern kompatibler 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 Mysqldump-Option aktiviert werden.
Der Duplicator erlaubt den Kompatibilitätsmodus nur während des Erstellungsprozesses. Er ist nicht erlaubt, wenn Vorlagen oder Zeitpläne erstellt werden. Der Grund für diese Einrichtung ist, die Verwendung dieser Einstellungen zu entmutigen und das eigentliche Problem zu beheben – nämlich die Aktualisierung Ihres Datenbankservers.
Datenbank-Upgrades: Der Kompatibilitätsmodus sollte nur als letzter Ausweg verwendet werden. Der empfohlene Ansatz zur Behebung von Datenbankproblemen besteht darin, sicherzustellen, dass beide Datenbankserver auf dem neuesten Stand und in den Versionsnummern sehr nah beieinander sind (siehe Option 1). Wenn beispielsweise der Datenbankserver, auf dem Sie das Backup erstellt haben, 5.7.5 ist, sollte der Datenbankserver, auf dem Sie das Backup installieren, mindestens im Bereich 5.7.N liegen. Bitten Sie Ihren Hoster oder Serveradministrator, den MySQL-Server nach Möglichkeit auf eine neuere Version zu aktualisieren. Wenn Ihr Hoster kein aktuelles Upgrade durchführt, bitten Sie ihn, auf eine möglichst hohe Version zu aktualisieren.
Datenerhaltung: Obwohl es im Internet mehrere Workarounds gibt (Option 4), die erklären, wie Sie die aktuelle SQL-Datei ändern oder den Mysqldump-Kompatibilitätsmodus verwenden können, besteht das zugrunde liegende Hauptproblem darin, dass Sie Daten in einem Format gespeichert und sie nun konvertieren werden. Diese Techniken können zu Datenverlust und Kompatibilitätsproblemen führen. Der richtige Ansatz ist die Aktualisierung der MySQL-Software.
Versuchen Sie beide Modi:
- Duplicator unterstützt derzeit zwei verschiedene Modi: Mysqldump und PHP-Modus (siehe Einstellungen » Backups Option).
- Wenn Sie auf Zeichenprobleme stoßen und keine Optionen mehr haben, können Sie versuchen, die Datenbank in beiden Modi zu erstellen, um zu sehen, ob eine der beiden die Probleme löst.
Option 4 – Manuelle Konfigurationen
Diese Optionen sind für fortgeschrittene Benutzer und sollten mit Vorsicht durchgeführt werden. Die Optionen erfordern die Aktualisierung des database.sql-Skripts oder die Aktualisierung der Kollationstypen der Quell-Datenbanktabelle. Nachfolgend sind drei verschiedene Ansätze aufgeführt; nur eine Option ist erforderlich, um das Problem zu beheben.
database.sql aktualisieren
Bei Problemen mit „unbekannter Kollation“ können Sie die folgenden Schritte versuchen:
- Extrahieren Sie die Archiv-Zip-Datei manuell.
- Öffnen Sie die Datei database.sql mit Notepad und suchen Sie nach & Ersetzen Sie die Sortierungen. Zum Beispiel könnten Sie:
- ersetzen: „utf8mb4“ durch „utf8“
- ersetzen: „utf8_unicode_520_ci“ durch „utf8_general_ci“
Probieren Sie diese Optionen immer zuerst in einer Sandbox aus und niemals auf einer Produktionsseite, bis Sie mit den Ergebnissen zufrieden sind.
Navigieren Sie dann zur installer.php-Datei auf dem Server und wählen Sie „Erweitert“ und aktivieren Sie „Manuelle Extraktion“.
Dies kann auch mit anderen Kollationen versucht werden (d. h. ersetzen Sie „collation_type_1“ durch „collation_type_2“).
Quell-Datenbank mit Code aktualisieren
Diese Option erfordert, dass Sie Ihr System wirklich verstehen und im Voraus Backups erstellt haben. Das Skript ermöglicht es Ihnen, die Kollation auf dem Build-Server zu ändern, sodass sie vom Zielserver unterstützt werden kann. Das vollständige Skript kann auf Stack Overflow unter: http://stackoverflow.com/a/29939906/2808424 eingesehen werden.
Quelldatenbank mit IDE aktualisieren
Wenn Sie sich nicht wohl dabei fühlen, den obigen Code auszuführen, können Sie auch ein IDE- oder GUI-Tool verwenden, mit dem Sie die Tabellenkollationen manuell entweder mit SQL-Anweisungen oder über eine Benutzeroberfläche ändern können. Auch hier erfordern diese Optionen, dass Sie Ihr System wirklich verstehen und im Voraus Backups erstellt haben.
Nachfolgend finden Sie eine einfache Schritt-für-Schritt-Anleitung zum Aktualisieren der Kollationen über eine IDE wie phpMyAdmin: