Как вы восстанавливаете после «неправильного файла ключа» с MySQL (InnoDB)? - PullRequest
6 голосов
/ 22 июня 2009
Incorrect key file for table 'widgets'; try to repair it 

Это сообщение об ошибке, которое MySQL выдает мне при попытке применить новый индекс к существующей (очень большой) таблице. Конечно, когда я следую совету сообщения об ошибке, пытаясь его починить:

mysql> repair table widgets;
+-------------------+--------+----------+---------------------------------------------------------+
| Table             | Op     | Msg_type | Msg_text                                                |
+-------------------+--------+----------+---------------------------------------------------------+
| tedsdb.widgets    | repair | note     | The storage engine for the table doesn't support repair | 
+-------------------+--------+----------+---------------------------------------------------------+
1 row in set (0.00 sec)

Какой мой лучший способ действий здесь (после очевидного полного резервного копирования перед тем, как возиться)?

ОБНОВЛЕНИЕ: Я создал новую таблицу (MyISAM) той же схемы, скопировал все записи (вставить в select), изменил движок новой таблицы (InnoDB), переименовал поврежденный table и переименовал новую таблицу, затем попытался снова и получил ту же ошибку.

Ответы [ 3 ]

13 голосов
/ 14 сентября 2010

Похоже на старый вопрос, но я столкнулся с этой проблемой. MySQL записывал временную таблицу на диск, и раздел / tmp заполнялся.

0 голосов
/ 28 января 2016

Когда мы выполняем Alter на innodb, нужно соблюдать tmpdir. Ошибка 1034: Восстановление ключа определенно происходит из-за переполнения «tmpdir», и ваш alter выдаст эту ошибку.

Поэтому я предлагаю, чтобы при срабатывании Alter еще раз взглянул на ваше использование tmpdir. Если tmp использует 100%, вы наверняка увидите эту ошибку:).

0 голосов
/ 22 июня 2009

Я настоятельно рекомендую сделать резервную копию, прежде чем пытаться это .

Выполнить манекен

ALTER TABLE widgets;
...