mysql.proc terus macet, tidak bisa melakukan mysqldump?

9

Karena beberapa masalah dengan InnoDB, saya akan membuang semua database ke server baru:

mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server          

Proses dump dihentikan dengan kesalahan:

59.9kB assword: 59.9kB 
ERROR 145 (HY000) at line 2970: Table './mysql/proc' is marked as crashed and should 
    be repaired
 228MB 
mysqldump: Got errno 32 on write

Saya telah menjalankan perintah berikut untuk memperbaiki semua tabel di semua database:

mysqlcheck --auto-repair --all-databases

Ketika saya memeriksa mysql.procstatusnya, saya mendapatkan:

mysql> check table mysql.proc;
+------------+-------+----------+----------+
| Table      | Op    | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status   | OK       |
+------------+-------+----------+----------+
1 row in set (0.02 sec)

Namun, saya masih mendapatkan kesalahan yang sama saat menjalankan kembali mysqldumpperintah.

Saya memiliki sekitar 2000 prosedur toko. Bisakah itu menjadi alasan kesalahan?

kuanta
sumber
2
Sudahkah Anda memperbaiki tujuan juga?
Philᵀᴹ
Apa 59.9kB assword: 59.9kB? Apakah itu sebenarnya bagian dari pesan kesalahan?
Max Vernon
@quanta selesai ...
Philᵀᴹ
@ MaxVernon: ini adalah sepotong pemipaan data pvsebelum memasukkan kata sandi pada host tujuan.
quanta

Jawaban:

3

Kesalahan ini:

GALAT 145 (HY000) pada baris 2970: Tabel './mysql/proc' ditandai sebagai macet dan harus diperbaiki 228MB mysqldump: Mendapat errno 32 saat menulis

... menyarankan bahwa masalahnya adalah menulis tidak membaca, jadi lakukan perbaikan pada database tujuan.

Philᵀᴹ
sumber
8

Saya baru saja mengalami masalah yang sama, ini diperbaiki dengan mengeluarkan perintah, dengan asumsi dir data mysql ada di / var / lib / mysql / mysql

myisamchk -q -r / var / lib / mysql / mysql / proc

Sumber: http://dev.mysql.com/doc/refman/5.0/id/myisam-repair.html

Marshall Mathers
sumber
Meskipun jawaban yang diterima sudah mengatakan untuk melakukan ini, Anda benar-benar menunjukkan caranya. +1 !!!
RolandoMySQLDBA