Назад | Перейти на главную страницу

Восстановить базу данных mysql innodb 'таблица не существует'

На прошлой неделе наш сервер упал, и мы потеряли много информации. Мы смогли восстановить .frm файлы для таблиц, ib_logfile0, ib_logfile1 и ibdata1 но нет .ibd.

Я пробовал innodb-force-recovery на всех уровнях с 1 по 6 и множество других «решений», которые я нашел в Интернете, но безуспешно.

Прямо сейчас я пытался сделать это, хотя mysqldump и restore базы данных, но столкнулись с той же проблемой Мэтью здесь.

этот ответ похоже, это может сработать. Моя проблема, во-первых, мой сервер основан на Windows, во-вторых, мне не хватает знаний и навыков, чтобы применить это в командной строке Windows.

Не случайно есть ли подобное решение для Windows

редактировать

мы не использовали innodb_file_per_table поэтому все данные должны храниться на ibdata1

Это сообщение на форуме MySQL выглядит как история успеха, хотя и немного устарела. Я помню похожую историю в Linux. Платформа Windows здесь не имеет значения, структура файлов данных MySQL аналогична. На самом деле никакой работы с командной строкой не требуется. Я предполагаю, что ты Ибдата файл никак не поврежден.

AFAIK вам не нужно ib_logfile? файлы вообще, сообщение на форуме подтверждает это. Ключевые операции здесь:

  1. новая установка MySQL (используйте ту же версию);
  2. ручное воссоздание с таким же именем базы данных, можно сделать из последней резервной копии, если она у вас есть;
  3. отключение innodb_file_per_table в my.cnf, лучше всего восстановить старый конфиг;
  4. замена Ибдата в новой установке с восстановленной.

После запуска MySQL вы должны иметь возможность просматривать и выгружать данные из таблиц InnoDB.