1932 Таблица ‘tablename’ не существует в системе. Таблица показывает статус использования [закрыта].

Вопрос или проблема

Я использую сервер Xamp и базу данных MySql. У меня есть несколько таблиц, некоторые из них созданы с движком InnoDb, а другие с движком MYISAM. Таблицы InnoDb имеют статус «В ИСПОЛЬЗОВАНИИ» и я могу открыть таблицу или выполнить с ней какое-либо действие. При попытке открыть возникает ошибка: ‘1932 Таблица ‘tablename’ не существует в движке‘. Когда я проверил папку mysql, где хранятся данные всех таблиц, я увидел файлы таблиц с размером около 60-70 МБ. Я пробовал несколько решений, создавая новую базу данных и копируя туда те же файлы, или создавая аналогичную структуру и вставляя .ibd файл, но ни одно из них не работает для меня. Кто-нибудь знает решение?

Ответ или решение

Ошибка 1932 (Table ‘tablename’ doesn’t exist in engine) в MySQL часто возникает, когда сервер не может найти таблицу в файловой системе или когда структура таблицы не соответствует её данным в файловой системе. Это может происходить по различным причинам, включая повреждение файлов таблицы или неправильное использование механизма хранения. Вот несколько шагов, которые могут помочь вам решить эту проблему.

  1. Проверьте целостность файлов таблицы:

    • Убедитесь, что файлы таблиц (.ibd для InnoDB и .frm для обоих механизмов) действительно существуют в папке данных MySQL. Если файлов нет или они повреждены, восстановить таблицу не удастся.
    • Вы можете использовать утилиту innodb_force_recovery, чтобы попытаться восстановить базу данных, но используйте её с осторожностью, так как это может повредить данные.
  2. Восстановление таблицы:

    • Если вы можете видеть файлы и они не повреждены, попробуйте выполнить REPAIR TABLE tablename, если таблица использует механизм MYISAM. Для InnoDB это не сработает, так как InnoDB работает по другим принципам.
    • Если это таблица InnoDB, вы можете попробовать создать новую таблицу с тем же именем и затем импортировать данные из старой таблицы. Однако это может потребовать ручного вмешательства, так как данные могут быть повреждены.
  3. Импорт данных из файлов .ibd:

    • Если вы сохранили .ibd файлы, попробуйте выполнить следующий набор операций:
      • Создайте новую пустую таблицу с той же структурой, что и исходная.
      • Убедитесь, что вы используете тот же механизм хранения (InnoDB).
      • Поместите .ibd файл в директорию, в которой находятся данные вашей новой таблицы.
      • Используйте команду ALTER TABLE tablename IMPORT TABLESPACE для импорта данных из старого .ibd файла в новую таблицу.
  4. Проверка настроек конфигурации:

    • Убедитесь, что в файле конфигурации вашего MySQL (обычно my.cnf или my.ini) указаны правильные параметры для работы с InnoDB и его файловыми системами.
  5. Консультируйтесь с документацией:

    • Обратитесь к официальной документации MySQL, чтобы изучить дополнительные методы ремонта и восстановления базы данных, так как они могут быть специфичны для вашей версии MySQL.
  6. Резервное копирование и восстановление:

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

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

Оцените материал
Добавить комментарий

Капча загружается...