Ich habe ein Upgrade von 5.5 auf MySQL 5.6 durchgeführt, und jetzt sind meine Protokolle beim Start mit solchen Meldungen übersät
Ich habe hier eine mögliche Lösung gefunden, aber es scheint nicht offiziell. http://forums.mysql.com/read.php?22,578559,579891#msg-579891
2013-12-06 21:08:00 7f87b1d26700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2013-12-06 21:08:00 7f87b1d26700 InnoDB: Recalculation of persistent statistics requested for table "drupal"."sessions" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead.
2013-12-06 21:08:07 7f903c09c700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
Irgendwelche offiziellen Lösungen oder 100% Korrekturen?
mysql_upgrade -u root -p --force && systemctl restart mysqld
Upgrades MySQL-Schema und alle DBS, um dieses Problem zu lösenAntworten:
Ich habe dieses Problem bereits in folgenden Abschnitten behandelt: Die Tabelle mysql / innodb_index_stats kann nicht geöffnet werden
Diese Tabellen werden für Sie erstellt, wenn Sie MySQL 5.6 installieren. Ein Upgrade von MySQL 5.5 ruft jedoch nicht die Erstellung dieser Tabellen auf. Hier sind die Skripte, um sie manuell zu erstellen:
innodb_index_stats
innodb_table_stats
slave_master_info
slave_relay_log_info
slave_worker_info
ALTERNATIVE
Eine andere Problemumgehung wäre, das Skript aus einer MySQL 5.6-Instanz zu erstellen.
Schritt 01 : Wechseln Sie zu einem DB-Server, auf dem MySQL 5.6 ausgeführt wird, oder installieren Sie MySQL 5.6 auf einem Testcomputer.
Schritt 02 : mysqldump diese 5 Tabellen in eine Textdatei
Anschließend können Sie
InnoDB_MySQL_Tables.sql
vor dem Upgrade auf jedem DB Server mit MySQL 5.5 ausführen .quelle
cat /usr/share/mysql/mysql_system_tables.sql | mysql -uroot -p mysql
ibdata1
Datei gelöscht hatte . MySQL hat diese Tabellen beim Start nicht neu erstellt, und ich musste die Dateien, die die Tabellen darstellen, manuell aus dem MySQL-Datenverzeichnis verschieben, um dieCREATE
obigen Anweisungen zu verwenden (DROP TABLE
hat nicht funktioniert).Rolando antwortete mit einigen Ergänzungen. Ich hatte das gleiche Problem mit diesen 5 Tabellen, die über SHOW TABLES angezeigt wurden, aber SELECT oder andere Operationen in der Tabelle führten dazu, dass die Tabelle nicht gefunden wurde.
Um das Problem mithilfe von Rolando zu lösen, musste ich:
DROP TABLE <tablename>
- Alle 5 TischeLöschen Sie im Dateisystem die verbleibenden .ibd-Dateien (die .frm-Dateien wurden von entfernt
DROP TABLE
).Ich habe dann angehalten und die mysqld-Instanz gestartet (weiß nicht, ob es gebraucht wurde - hat mich glücklich gemacht)
Die
CREATE TABLE
Aussagen von Rolando liefen dann ohne Probleme.quelle
DROP TABLE <tablename>
ich auch beim starten noch dieERROR 1051 (42S02): Unknown table '...'
fehlermeldung bekommen habe, aber zumindest die .frm datei bis dahin verschwunden ist.