Kesalahan saat menjatuhkan basis data InnoDB

8

Saya mencoba untuk menjatuhkan database di mysql, tetapi setiap kali saya mendapatkan kesalahan ini

ERROR 2013 (HY000): Lost connection to MySQL server during query

bahkan login sebagai root.

Awalnya, saya memiliki tabel rusak yang tidak dapat saya buat ulang, oleh karena itu saya memutuskan untuk membuat ulang db. Saya punya file innodb per tabel, tidak yakin apakah itu penting.

Bagaimana saya bisa menjatuhkan basis data ini?

giorgio79
sumber

Jawaban:

10

Saya khawatir Anda tidak dapat menjatuhkan basis data.

Masalahnya adalah tabel yang rusak. Itu belum tentu .ibdfile. Kemungkinan besar, ini adalah entri kamus data dalam ibdata1 ( Lihat representasi gambar ibdata1 ).

Saya menulis tentang ini kembali pada Mar 02, 2012: tabel InnoDB SELECT mengembalikan ERROR 2006 (HY000): Server MySQL telah hilang (setelah listrik padam)

Meskipun membosankan, berikut adalah apa yang dapat Anda lakukan untuk menyimpan tabel lain dalam basis data yang rusak bad_db:

LANGKAH 01) USE bad_db

LANGKAH 02) Jalankan SELECT COUNT(1) FROM tablename;untuk setiap tabel di bad_db. Kumpulkan semua nama tabel yang tidak membuat crash mysqld saat Anda mencoba menjalankan hitungan.

LANGKAH 03) Jalankan mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql untuk semua tabel yang tidak crash mysqld.

Jika Anda akan menggunakan nama database yang berbeda, maka muat ulang bad_db_goodtables.sqlke dalam database baru itu.

Jika Anda membutuhkan database dengan nama yang sama, BERITA BURUK !!! Anda akan memiliki perbaikan ibdata1. Ada beberapa langkah:

LANGKAH 04) mysqldump semua database lain menjadi file dump terpisah

LANGKAH 05) Lakukan Pembersihan Infrastruktur InnoDB ( Lihat Oct 29, 2010Post StackOverflow saya )

LANGKAH 06) Muat ulang semua database mysqldumps lainnya.

Cobalah !!!

RolandoMySQLDBA
sumber
Rolando sangat dihargai! Jawaban yang fantastis. Berharap ada cara untuk memperbaiki db itu. Ingin itu menjadi nama yang sama :)
giorgio79
Saya menjalankan MySQL untuk sementara waktu sekarang, apakah ini terjadi pertama kali di hari lain, terima kasih atas penjelasannya.
webLacky3rdClass
1
Bagaimana Anda bisa melakukan pembersihan infrastruktur InnoDB jika Anda tidak dapat menjatuhkan basis data dan langkah # 2 dari pembersihan adalah untuk membuang semua basis data?
bancer
Mungkin situasi yang langka, tetapi saya mengalami ini saat memulihkan dump sebagai pekerjaan latar belakang. Terminal induk mati, dan db tidak dapat dijatuhkan hingga koneksi pemulihan terputus.
STW