Uaktualniłem do mysql 5.6 z 5.5, a teraz moje logi są pełne takich komunikatów podczas uruchamiania
Znalazłem tutaj możliwe rozwiązanie, ale nie wydaje się oficjalne. 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.
Jakieś oficjalne rozwiązania lub 100% poprawki?
mysql_upgrade -u root -p --force && systemctl restart mysqld
uaktualnia schemat mysql i wszystkie dbs, rozwiązując ten problemOdpowiedzi:
Wcześniej rozwiązałem ten problem w: Nie można otworzyć tabeli mysql / innodb_index_stats
Te tabele są tworzone dla Ciebie podczas instalowania MySQL 5.6. Jednak aktualizacja z MySQL 5.5 nie powoduje utworzenia tych tabel. Oto skrypty do ich ręcznego tworzenia:
innodb_index_stats
innodb_table_stats
slave_master_info
slave_relay_log_info
niewolnik_info
ALTERNATYWNY
Innym obejściem byłoby utworzenie skryptu z instancji MySQL 5.6.
Krok 01 : Przejdź do serwera DB z systemem MySQL 5.6 lub zainstaluj MySQL 5.6 na maszynie testowej.
Krok 02 : mysqldump te 5 tabel do pliku tekstowego
Następnie można uruchomić
InnoDB_MySQL_Tables.sql
na dowolnym serwerze DB z systemem MySQL 5.5 przed aktualizacją.źródło
cat /usr/share/mysql/mysql_system_tables.sql | mysql -uroot -p mysql
ibdata1
plik. MySQL nie utworzył ponownie tych tabel podczas uruchamiania i musiałem ręcznie przenieść pliki reprezentujące tabele z katalogu danych MySQL, aby użyćCREATE
powyższych instrukcji (DROP TABLE
nie działało).Odpowiedź Rolando działała dla mnie z pewnymi dodatkami. Miałem ten sam problem, z tymi 5 tabelami wyświetlanymi za pośrednictwem SHOW TABLES, ale SELECT lub inne operacje na tabeli spowodowały, że nie znaleziono tabeli.
Aby rozwiązać problem, korzystając z odpowiedzi Rolando, musiałem:
DROP TABLE <tablename>
- wszystkie 5 stołówW systemie plików usuń pozostałe pliki .ibd (pliki .frm zostały usunięte przez
DROP TABLE
)Następnie zatrzymałem się i uruchomiłem instancję mysqld (nie wiem, czy była potrzebna - uszczęśliwiło mnie)
Te
CREATE TABLE
wypowiedzi Rolando przewidziane pobiegł bez problemu.źródło
DROP TABLE <tablename>
wciąż pojawia sięERROR 1051 (42S02): Unknown table '...'
komunikat o błędzie, ale przynajmniej plik .frm zniknął.