Эвм напоминает Лона Чени - это машина с тысячью лиц.

Как восстановить данные таблицы MySQL InnoDB из файлов ibdata и .frm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Как восстановить данные таблицы MySQL InnoDB из файлов ibdata и .frm
В этой статье объясняется, как восстанавливать таблицы MySQL при утрате всех или некоторых таблиц или когда MySQL не загружает данные таблицы.

Одна из причин этого – когда данные таблицы повреждены.

В этом конкретном случае, когда вы подключаетесь к серверу базы данных MySQL, вы не видите других таблиц, поскольку они отсутствуют.

В этом сценарии в файле журнала MySQL содержались следующие сообщения:

 

Метод, описанный ниже, будет работать только для базы данных InnoDB.

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

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

  • Ibdata1 – этот файл представляет собой системное табличное пространство InnoDB, которое содержит несколько таблиц InnoDB и связанных индексов.
  • * .frm – хранит информацию метаданных для всех таблиц MySQL. Эти файлы находятся внутри папки соответствующей базы данных MySQL. (например, внутри каталога «bugs»)
  • ib_logfile * – Все изменения данных записываются в эти файлы журналов. Это похоже на концепции архивных журналов, которые мы находим в других СУБД.

Скопировать файлы

Чтобы восстановить данные из вышеуказанных файлов, сначала остановите сервер MySQL.

 

Скопируйте файлы ibdata и папку схемы базы данных в другой каталог. Мы будем использовать это для восстановления нашей базы данных MySQL. В этом случае мы скопируем его в каталог /tmp. Имя схемы базы данных в этом примере – это ошибки.

 

Запустите сервер MySQL:

 

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

Восстановить данные

Затем восстановите данные таблицы, как описано ниже.

В файле конфигурации my.cnf установите значение следующего параметра в текущий размер файла ib_logfile0. В следующем примере я установил его на 48M, так как это размер, который мы видим для файла ib_logfile0, когда делали «ls -lh ib_logfile0»,

 

Обратите внимание, что размер файла ib_logfile0 и ib_logfile1 будет таким же.

Скопируйте предыдущие файлы ibdata в соответствующую позицию, в каталог данных mysql.

 

Создайте пустую папку внутри каталога данных с тем же именем, что и имя схемы базы данных, которое вы пытаетесь восстановить, и скопируйте предыдущие файлы .frm внутри этой папки, как показано ниже:

 

Наконец, перезапустите сервер MySQL.

 

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

 

Читайте также

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

    Войти с помощью: 

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

    Простая логическая игра "Поймай кота". Задача игры окружить кота точками так, чтобы он не смог убежать с поля. Постигла неудача - начни игру снова!

    Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

    badge
    Обратный звонок 1
    Отправить
    galka

    Спасибо! Ваша заявка принята

    close
    galka

    Спасибо! Ваша заявка принята

    close