Перейти к содержимому
Узнайте, как устранить ошибку MySQL «Подсистема хранения таблицы не поддерживает восстановление» с помощью эффективных решений для механизмов хранения MyISAM и InnoDB
[Исправлена ​​ошибка MySQL: «Двигатель хранения для таблицы не поддерживает ремонт» 1

MySQL предлагает различные утилиты и команды для восстановления поврежденных таблиц и баз данных. Однако некоторые команды и утилиты поддерживают восстановление таблиц и баз данных, созданных в определенной поисковой системе (MyISAM или InnoDB). Если вы попытаетесь восстановить таблицы с помощью команды или утилиты, несовместимой с конкретным механизмом хранения, вы можете столкнуться с ошибками и не сможете восстановить таблицы.

Одна из таких ошибок: «Подсистема хранения таблицы не поддерживает восстановление». Эта ошибка возникает, когда вы пытаетесь восстановить таблицу с помощью команды, не поддерживающей конкретный механизм хранения. Например, вы используете команду myisamchk для восстановления таблиц, созданных в механизме хранения InnoDB. В этой статье мы обсудим, как устранить ошибку: механизм хранения таблицы не поддерживает восстановление в MySQL.

Решения для устранения ошибки «Механизм хранения таблицы не поддерживает восстановление» в MySQL

Двигатель для хранения стола не поддерживает ремонт

Если вы столкнулись с такой ошибкой, то сначала проверяется ваша встреча, если вам нужно сначала проверить, исправляете ли вы таблицы в соответствии с механизмом хранения. Давайте посмотрим, какую команду или утилиту вы можете проверить в механизме хранения (MyISAM и InnoDB).

Для механизма хранения MyISAM

Чтобы восстановить таблицы MyISAM, вы можете выполнить следующие команды:

1: команда REPAIR TABLE

REPAIR TABLE — мощная команда, используемая для восстановления таблиц MyISAM. Эта команда может восстанавливать только одну таблицу одновременно. Вот как его использовать:

Имя таблицы REPAIR TABLE [параметры]

2: команда myisamchk

Вы также можете запустить утилиту myisamchk для восстановления таблиц MyISAM. Эта утилита извлекает все данные из поврежденных таблиц. Вот синтаксис использования команды myisamchk для восстановления таблиц MySQL:

myisamchk [ -восстанавливаться ] имя_таблицы …

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

для innodb horage engine

Для ремонта таблиц, созданных в двигателе innodb хранения, вы можете запустить приведенные ниже команды:

1- Команда альтер-таблицы

Чтобы восстановить таблицы Innodb, вы можете использовать команду Alter Table. Эта команда помогает вам предоставить новое имя в таблице, которое заставляет Innodb воссоздать его и восстановить все данные в ней. Эта команда также может помочь решить проблемы с коррупцией в таблице MySQL InnoDB. Вот как использовать эту команду:

alter table tbl_nameingin = innodb

Примечание: Перед использованием команды убедитесь, что у вас есть изменение, создание и вставьте привилегии для таблицы. 

2- Команда mysqldump

Вы также можете использовать команду Mysqldump для восстановления таблиц Innodb, сбрасывая и перезаряжая их. Ниже приведены шаги, которые вы должны выполнить, чтобы сделать это:

Шаг 1: перезагрузить сервер mysql

Вам нужно сначала перезапустить сервер MySQL. Запустите ниже команду:

Служба перезапуска MySQL

Шаг 2: Используйте настройки innodb_force_recovery, чтобы запустить MySQL Server

Сервер может не запустить или сбой, когда он обнаруживает поврежденные таблицы Innodb. В этом случае вы можете использовать Force Innodb Recovery, чтобы восстановить вашу базу данных MySQL. Поисковая система MySQL имеет настройки InnoDB_FORCE_RECOVERY для настройки поведения MYSQL в процессе запуска. Вы можете использовать эти настройки, чтобы позволить серверу запускаться, даже если он обнаруживает поврежденные таблицы.

По умолчанию опция innodb_force_recovery не включена. Вы должны включить эту опцию из файла конфигурации. Для этого перейдите в файл конфигурации (my.cnf) в вашей системе.

Местоположение файла конфигурации может отличаться в зависимости от используемой вами операционной системы. В Windows вы можете найти файл конфигурации в каталоге «/etc». Путь по умолчанию -/etc/mysql/my.cnf.

Теперь откройте файл my.cnf, перейдите в раздел [mysqld], а затем измените существующие операторы со следующими операторами:

[mysqld]

innodb_force_recovery = 1

Служба перезапуска MySQL

Примечание:Приведенный выше шаг помогает вам запустить двигатель InnoDB, а затем сбросить таблицы. Вы можете установить значение innodb_force_recovery более чем на 4. Однако добавление значения к более чем 4 может привести к потере данных. Итак, сначала создайте резервную копию, а затем продолжайте.

Шаг 3: сбросить данные таблицы

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

mysqldump -u user -p database_name table_name>single_dbtable_dump.sql

Шаг 4: Экспортируйте данные в файл dump.sql

Теперь экспортируйте данные в файл dump.sql, используя ниже команду:

mysqldump –ВС-датабазы ​​–add-drop-database -add-drop-stable>dilmb.sql

Шаг 5: оставьте базу данных и отключите innodb recoveryрежим

После этого перезапустите сервер MySQL, а затем выпустите вашу базу данных, используя команду Drop Database.

Затем перейдите в тот же файл конфигурации [MySQLD], чтобы отключить режим innodb recovery. Для этого просто прокомментируйте следующую строку.

#innodb_force_recovery =…

Теперь сохраните все примененные изменения в файле my.cnf, нажав Ctrl+S, а затем перезапустите свой сервер MySQL.

Вы можете следовать вышеуказанным командам и утилитам в зависимости от двигателя хранения (Innodb или Myisam), который вы используете. Это поможет предотвратить ошибку «Двигатель хранения для таблицы не поддерживает ремонт» при ремонте таблиц/базы данных.

Альтернативное решение для восстановления коррупционной базы данных/таблиц MySQL

Если вы хотите одно решение для ремонта таблиц, созданных как в двигателях Innodb, так и в Myisam Storage, вы можете использовать профессиональный инструмент ремонта MySQL, например, Звездный ремонт MySQL . Этот инструмент поддерживает как двигатели Innodb, так и Myisam хранения.

он может быстро восстановить все данные из коррумпированных таблиц, включая иностранные ключи, уникальные ключи и т. Д., С абсолютной точностью. Инструмент поддерживает выборочное восстановление объектов базы данных. Это позволяет сохранять ремонтные данные в нескольких форматах — MySQL, MariaDB и многое другое.

Заключение

Ошибка ‘Двигатель хранения для таблицы не поддерживает ремонт» — это ошибка двигателя хранения в MySQL. Если вы сталкиваетесь с этой ошибкой, убедитесь, что вы выполняете правильную команду ремонта в соответствии с механизмом хранения.

Выше, мы обсудили команды, которые вы можете использовать для ремонта таблиц MySQL в соответствии с двигателями хранения (Myisam и Innodb).

В качестве альтернативы вы можете использовать расширенную версию Инструмент восстановления MySQL — Stellar Repair for MySQL, чтобы без проблем восстановить таблицы InnoDB и MyISAM. Инструмент совместим с операционными системами Windows и Linux.