MySQL: # 126 - неверный ключевой файл для таблицы - PullRequest
105 голосов
/ 06 января 2010

Я получил следующую ошибку из запроса MySQL.

#126 - Incorrect key file for table

Я даже не объявил ключ для этой таблицы, но у меня есть индексы. Кто-нибудь знает в чем может быть проблема?

Ответы [ 14 ]

0 голосов
/ 12 августа 2016

Моя проблема возникла из-за неправильного запроса. Я ссылался на таблицу из FROM, на которую не ссылались в SELECT.

пример:

   SELECT t.*,s.ticket_status as `ticket_status`
   FROM tickets_new t, ticket_status s, users u

, users u это то, что вызывало у меня проблему. Удаление, которое решило проблему.

Для справки это было в среде разработчиков CodeIgniter.

0 голосов
/ 01 июля 2016
mysql> set global sql_slave_skip_counter=1; start slave; show slave status\G

Затем возникла ошибка:

 Error 'Table './openx/f_scraper_banner_details' is marked as crashed and should be repaired' on query. Default database: 'openx'. Query: 'INSERT INTO f_scraper_banner_details(job_details_id, ad_id, client_id, zone_id, affiliateid, comments, pct_to_report, publisher_currency, sanity_check_enabled, status, error_code, report_date) VALUES (10274859, 321264, 0, 31926, 0, '', -1, 'USD', 1, 'FAILURE', 'INACTIVE_BANNER', '2016-06-28 04:00:00')'

mysql> таблица восстановления f_scraper_banner_details;

Это сработало для меня

0 голосов
/ 05 апреля 2016

Теперь другие ответы решили это для меня. Оказывается, переименование столбца и индекса в одном запросе вызвало ошибку.

Не работает:

-- rename column and rename index
ALTER TABLE `client_types`
    CHANGE `template_path` `path` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
    DROP INDEX client_types_template_path_unique,
    ADD UNIQUE INDEX `client_types_path_unique` (`path` ASC);

Сочинения (2 высказывания):

-- rename column
ALTER TABLE `client_types`
    CHANGE `template_path` `path` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
-- rename index
ALTER TABLE `client_types`
    DROP INDEX client_types_template_path_unique,
    ADD UNIQUE INDEX `client_types_path_unique` (`path` ASC);

Это было на MariaDB 10.0.20. В MySQL 5.5.48 не было ошибок с тем же запросом.

0 голосов
/ 09 апреля 2012

Попробуйте выполнить команду восстановления для каждой из таблиц, участвующих в запросе.

Используйте администратора MySQL, перейдите в Каталог -> Выберите каталог -> Выберите таблицу -> Нажмите кнопку Обслуживание -> Восстановить -> Использовать FRM.

...