Z powodu problemów z InnoDB zrzucę wszystkie bazy danych na nowy serwer:
mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server
Proces zrzutu został zatrzymany z błędem:
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
Uruchomiłem następujące polecenie, aby naprawić wszystkie tabele we wszystkich bazach danych:
mysqlcheck --auto-repair --all-databases
Kiedy sprawdzam mysql.proc
status, otrzymuję:
mysql> check table mysql.proc;
+------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status | OK |
+------------+-------+----------+----------+
1 row in set (0.02 sec)
Jednak nadal pojawia się ten sam błąd podczas ponownego uruchamiania mysqldump
polecenia.
Mam około 2000 procedur sklepowych. Czy to może być przyczyną błędu?
mysql
stored-procedures
mysqldump
crash
kwanty
źródło
źródło
59.9kB assword: 59.9kB
? Czy to rzeczywiście część komunikatu o błędzie?pv
przed wprowadzeniem hasła na hoście docelowym.Odpowiedzi:
Ten błąd:
... sugeruje, że problemem jest pisanie, a nie czytanie, więc zrób naprawę docelowej bazy danych.
źródło
Właśnie miałem ten sam problem, został rozwiązany przez wydanie polecenia, zakładając, że katalog danych mysql znajduje się w katalogu / var / lib / mysql / mysql
myisamchk -q -r / var / lib / mysql / mysql / proc
Źródło: http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html
źródło