Saya memutakhirkan ke mysql 5.6 dari 5.5, dan sekarang log saya dipenuhi dengan pesan-pesan seperti itu pada saat startup
Saya menemukan solusi yang mungkin di sini, tetapi tampaknya tidak resmi. 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.
Adakah solusi resmi atau perbaikan 100%?
mysql_upgrade -u root -p --force && systemctl restart mysqld
memutakhirkan skema mysql dan semua dbs, menyelesaikan masalah iniJawaban:
Saya sebelumnya membahas masalah ini di: Tidak dapat membuka tabel mysql / innodb_index_stats
Tabel-tabel ini dibuat untuk Anda ketika Anda menginstal MySQL 5.6. Namun, pemutakhiran dari MySQL 5.5 tidak meminta pembuatan tabel ini. Berikut ini skrip untuk membuatnya secara manual:
innodb_index_stats
innodb_table_stats
slave_master_info
slave_relay_log_info
slave_worker_info
ALTERNATIF
Solusi lain adalah membuat skrip dari instance MySQL 5.6.
Langkah 01 : Mendapat Server DB yang menjalankan MySQL 5.6, atau menginstal MySQL 5.6 pada mesin uji.
Langkah 02 : mysqldump 5 tabel ini ke file teks
Kemudian, Anda dapat berjalan
InnoDB_MySQL_Tables.sql
di DB Server mana saja yang menjalankan MySQL 5.5 sebelum memutakhirkan.sumber
cat /usr/share/mysql/mysql_system_tables.sql | mysql -uroot -p mysql
ibdata1
file saya . MySQL tidak membuat ulang tabel ini pada startup dan saya harus memindahkan file yang secara manual mewakili tabel dari direktori data MySQL untuk menggunakanCREATE
pernyataan di atas (DROP TABLE
tidak berfungsi).Jawaban Rolando berhasil untuk saya dengan beberapa tambahan. Saya memiliki masalah yang sama, dengan 5 tabel ini ditampilkan melalui SHOW TABLES, tetapi SELECT atau operasi lain di atas meja mengakibatkan tabel tidak ditemukan.
Untuk mengatasi masalah ini, menggunakan jawaban Rolando, saya perlu:
DROP TABLE <tablename>
- semua 5 tabelDalam sistem file, hapus file .ibd yang tersisa (file .frm dihapus oleh
DROP TABLE
)Saya kemudian berhenti dan memulai contoh mysqld (tidak tahu apakah itu diperlukan - membuat saya senang)
The
CREATE TABLE
pernyataan Rolando disediakan kemudian berlari tanpa masalah.sumber
DROP TABLE <tablename>
saya masih mendapatkanERROR 1051 (42S02): Unknown table '...'
pesan kesalahan, tetapi setidaknya file .frm menghilang saat itu.