mysql_upgrade ist fehlgeschlagen - innodb-Tabellen existieren nicht?

7

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%     
Gangaraju 16.06.2016, 10:10
quelle

4 Antworten

3

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.

%Vor%

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!

    
Gangaraju 16.06.2016, 13:46
quelle
21

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.

    
Jocelyn 16.06.2016 10:48
quelle
4

UPDATED Fix für: MariaDB 10

6 Tabellen (enthält die Tabelle gtid_slave_pos)

Hinweis: MariaDB und MySQL haben verschiedene GTID-Implementierungen, die nicht miteinander kompatibel sind.

Verwenden Sie auf eigene Gefahr.

%Vor%     
FRANKLIN 30.10.2016 21:38
quelle
0

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:

  1. Kopiere engine_cost.frm (beliebige Auswahl) als jede verknüpfte .frm Datei

  2. Führen Sie mysql -p mysql aus, um den Befehlsinterpreter zu starten.

  3. Löschen Sie jede Tabelle.

  4. Beenden Sie den Befehlsinterpreter.

  5. Stoppen Sie den Datenbankserver.

  6. Löschen Sie die verwaisten .ibd -Dateien.

  7. Starten Sie den Datenbankserver neu.

  8. Führen Sie FRANKLINs Skript aus, um die fehlenden Tabellen zu erstellen.

FKEinternet 05.03.2018 02:03
quelle

Tags und Links