Ich aktualisiere meine Docker-Container-Datenbank von mysql-5.5 auf den Docker-Container von mysql-5.6. Ich konnte alle anderen Probleme beheben. Endlich läuft mein Server mit 5.6. Aber wenn ich mysql_upgrade ausführe, erhalte ich den folgenden Fehler.
FEHLER:
%Vor% Ich konnte das beheben, indem ich /var/lib/mysql/ibdata*
files aus dem alten Container löschte (5.5). Ich kopiere Inhalt in /var/lib/mysql
Verzeichnis meines alten Containers (5.5) in den neuen Container (5.6) /var/lib/mysql
. Es funktioniert, wenn ich kopiere /var/lib/mysql/ibdata*
Datei überspringen.
Gefunden, dass diese Tabellen in mysql-5.6 hinzugefügt / entfernt werden. Das Kopieren / Verwenden alter ibdata-Dateien führt zu Inkonsistenzen mit innodb-Tabellen und ibdata-Dateien. Obwohl die .frm, .idb-Dateien vorhanden sind, ist dies aufgrund älterer ibdata fehlgeschlagen.
Wie in diesem Link erwähnt, wurde versucht, diese Datei zu löschen, und mysql_upgrade
wurde erfolgreich beendet .
Die von mysql_install_db erstellten ibdata * Datendateien sind beschädigt und müssen vor dem Start von mysqld! trashed werden!
Dies ist ein bekannter Fehler in MySQL 5.6, hier ist dokumentiert .
Gemäß den Antworten auf den Fehlerbericht können Sie die fehlenden Tabellen manuell erstellen. Die Struktur der fehlenden Tabellen wird als Anhang hier bereitgestellt.
Schritte zu folgen:
1) Löschen Sie diese Tabellen aus Mysql:
%Vor% 2) Löschen Sie die Dateien *.frm
und *.ibd
für die 5 obigen Tabellen.
3) Erstellen Sie die Tabellen, indem Sie die folgenden Abfragen ausführen:
%Vor%4) Starten Sie Ihren MySQL-Server neu.
Ich habe die "Tabelle existiert nicht" -Fehler, wenn ich versuche, eine Sicherung meiner Datenbank zu machen. Ich konnte FRANKLINs MariaDb-Skript verwenden, nachdem ich diese Schritte ausgeführt habe, die wegen Fehlern wie
%Vor%Die Schritte:
Kopiere engine_cost.frm
(beliebige Auswahl) als jede verknüpfte
.frm
Datei
Führen Sie mysql -p mysql
aus, um den Befehlsinterpreter zu starten.
Löschen Sie jede Tabelle.
Beenden Sie den Befehlsinterpreter.
Stoppen Sie den Datenbankserver.
Löschen Sie die verwaisten .ibd
-Dateien.
Starten Sie den Datenbankserver neu.
Führen Sie FRANKLINs Skript aus, um die fehlenden Tabellen zu erstellen.
Tags und Links mysql innodb docker mysqlupgrade