Dieser Artikel enthält detaillierte Anweisungen zur Behebung verschiedener Probleme mit MySQL-Datenbanken, einschließlich Schreibfehlern, Fehlern bei der Datenbankerstellung, Kompatibilitätsproblemen und Fehlern bei der Tabellenzusammenstellung.
Datenbank-Schreibfehler
Wenn der Zielserver auf MySQL 5.7+ läuft und das Duplicator-Protokoll Fehler anzeigt wie: ERROR database error write '...', dann haben Sie möglicherweise Probleme, wenn MySQL im Strict-Modus läuft. Wenn dies der Fall ist, versuchen Sie die folgenden Optionen:
Häufige Fehlermeldungen
- DB FEHLER: Die CREATE-Abfrage für die Tabelle wp_XYZ konnte nicht abgerufen werden. Falsche Informationen in der Datei: './database_store/wp_XYZ.frm'
- DATABASE ERROR: Diese Funktion hat keine der Optionen DETERMINISTIC, NO SQL oder READS SQL DATA in ihrer Deklaration und binären Protokollierung...
- Tablespace für Tabelle xxx existiert. Bitte DISCARDen Sie den Tablespace vor dem IMPORT
Lösung 1
Bei allgemeinen Schreibfehlern gibt es einige Möglichkeiten, die Sie in Betracht ziehen können. Versuchen Sie diese in der Reihenfolge, in der sie vorgestellt werden. Die schnellste Lösung ist OPTION A. Wenn die Option jedoch dauerhaft auf dem Server bleiben soll, sollten Sie OPTION B in Betracht ziehen.
OPTION A
- Aktivieren Sie den erweiterten Modus des Installationsprogramms.
- Wählen Sie unter Optionen " Datenbank " Extraktionseinstellungen die Option Benutzerdefiniert für die Moduseinstellungen und geben Sie NO_ENGINE_SUBSTITUTION in das Textfeld ein.
- Fahren Sie mit dem Installationsvorgang fort und schließen Sie ihn ab.
OPTION B
- Öffnen Sie diese Datei im Editor: C:\wamp64\bin\mysql\mysql5.7.9\my.ini
- Fügen Sie die letzte Zeile in die Datei ein:
[mysqld]
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION - Starten Sie den MySQL-Server neu (Budget-Hosts müssen sich möglicherweise an ihren Hosting-Anbieter wenden).
Wenn OPTIONEN A/B nicht funktionieren, gehen Sie wie folgt vor:
- Rufen Sie Ihren Server per SSH als root auf und erstellen Sie die Datei /etc/mysql/conf.d/disable_strict_mode.cnf.
- Öffnen Sie die Datei und geben Sie diese beiden Zeilen ein:
[mysqld]
sql_mode=IGNORE_SPACE, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION - Starten Sie MySQL neu, indem Sie den Befehl ausführen:
$ sudo service mysql restart
Lösung 2
Beheben Sie Schreibprobleme bei der Erstellung von Abfragen im Zusammenhang mit der folgenden Fehlermeldung:
EXCEPTION message: DB ERROR: Konnte die CREATE-Abfrage für die Tabelle wp_XYZ nicht abrufen. Falsche Informationen in der Datei: './database_store/wp_XYZ.frm'
- Führen Sie eine Datenbankreparatur für Ihre aktuelle WordPress-Website durch.
- Im Installationsprogramm Schritt 2 " Registerkarte "Tabellen" " Deaktivieren Sie das Importkennzeichen für die Tabelle, die das Problem verursacht.
- Alternativ können Sie bei der Erstellung einer Sicherung in Schritt 1 die betreffende Tabelle vom Hinzufügen ausschließen.
Lösung 3
Behebung von Schreibproblemen für Funktionen im Zusammenhang mit der folgenden Fehlermeldung:
DATABASE ERROR: Diese Funktion hat keine der Optionen DETERMINISTIC, NO SQL oder READS SQL DATA in ihrer Deklaration und die binäre Protokollierung ist aktiviert (Sie *könnten* die Variable lesssafe log_bin_trust_function_creators verwenden)
Führen Sie Folgendes in der MySQL-Konsole aus ODER fügen Sie Folgendes zur Konfigurationsdatei mysql.ini hinzu:
SET GLOBAL log_bin_trust_function_creators = 1;
log_bin_trust_function_creators = 1
Mit dieser Einstellung wird die Prüfung für nicht-deterministische Funktionen gelockert. Nicht-deterministische Funktionen sind Funktionen, die Daten verändern (d.h. Aktualisierungs-, Einfüge- oder Löschanweisungen haben).
Weitere Informationen finden Sie hier. Vollständige Details finden Sie in diesem Artikel.
Wenn Ihr Hosting-Provider die oben genannten Einstellungen nicht zulässt, wenden Sie sich direkt an ihn oder ziehen Sie in Erwägung, mit dem Entwickler, der die Funktionen geschrieben hat, zusammenzuarbeiten und sie neu zu bewerten, damit sie den Anforderungen der Datenbank-Engine gerecht werden.
Lösung 4
Wenn Sie während der Installation eine Meldung wie die unten gezeigte erhalten, müssen Sie wahrscheinlich eine der tablename.ibd-Dateien löschen, die beim Entfernen der Datenbanktabelle nicht richtig gelöscht wurde.
Tablespace für Tabelle xxx existiert. Bitte VERWERFEN Sie den Tablespace vor dem IMPORT
. Eine vollständige Auflistung aller möglichen Lösungen für dieses Problem finden Sie in diesem Stack-Overflow-Artikel.
Fehler bei der Erstellung der Datenbank
Beim Versuch, die Aktion "Datenbank erstellen" zu verwenden, wird eine Meldung wie "Datenbank kann nicht erstellt werden..." angezeigt.
Lösung
Die Meldung "Unable to create database..." bedeutet in der Regel, dass Ihr Host die Erstellung von Datenbanken über PHP-Code nicht unterstützt. In diesem Fall müssen Sie eine Datenbank mit den von ihnen bereitgestellten Tools erstellen.
Bei den meisten Hosts können Sie dies über das Cpanel tun. Bitte wenden Sie sich an Ihren Hoster, um zu erfahren, wie Sie eine neue Datenbank erstellen können. Duplicator Pro-Benutzer sollten in der Lage sein, sich über die Registerkarte cPanel-Verbindung in ihr cPanel-Konto einzuloggen und die Datenbank über die Schnittstelle des cPanel-Installationsprogramms zu erstellen. Alternativ können Sie auch die Modi Importieren oder Überschreiben verwenden.
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 - Aktivieren der Legacy-Prüfung
Im Installationsprogramm gibt es in Schritt 2 unter Optionen eine Einstellung mit dem Titel "Legacy" und der Beschriftung "Apply legacy collation fall-back support for unknown collations types". Aktivieren Sie dieses Kontrollkästchen, um eine Fallback-Sortierreihenfolge anzuwenden, und fahren Sie mit der Installation fort.
Beim Erstellen einer Datenbanktabelle kann es vorkommen, dass die verwendete MySQL-Version den Sortierungstyp der MySQL-Version, in der die Tabelle erstellt wurde, nicht unterstützt. In diesem Fall greift das Installationsprogramm auf einen älteren Sortierungstyp zurück und versucht, die Tabelle zu erstellen. Dieser Wert sollte nur überprüft werden, wenn Sie bei der Installation der Datenbank einen Fehler erhalten.
Wenn das Backup zum Beispiel auf MySQL 5.7 mit dem Tabellensortierungstyp 'utf8mb4_unicode_520_ci' erstellt wurde und Sie das Installationsprogramm auf einer älteren MySQL 5.5-Engine ausführen, die diesen Typ nicht unterstützt, wird ein Fehler ausgegeben. Wenn diese Option aktiviert ist, wird die Legacy-Einstellung versuchen, 'utf8mb4_unicode_520' zu benutzen, dann 'utf8mb4', dann 'utf8' und so weiter, bis ihr die Optionen ausgehen. Obwohl diese Option bei den meisten Konfigurationen funktioniert, ist die obige Option 1 immer noch die empfohlene und sicherste Option.
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:
- phpMyAdmin
- SQL-Anweisungen
- MySQL Workbench
Siehe auch:
Empfohlene Hosting-Anbieter für Duplicator?
http://dev.mysql.com/downloads/mysql
https://make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade