Как восстановить базу данных MySQL в Linux?

Файлы Базы данных Mysql подвержены повреждениям и несоответствиям. Они могут легко повредиться по нескольким причинам, таким как вирусная атака на компьютер, сбой оборудования, проблемы с программным обеспечением и т. д. Когда база данных повреждена, вы можете не получить к ней доступ или столкнуться с несколькими ошибками. Например:

  • Индекс для таблицы global_priv поврежден; попробуйте восстановить его.
  • Получена ошибка nnn от обработчика таблиц.
  • Неожиданное окончание файла.
  • Не удается найти файл tablethatshouldbethere.MYI.

Метод 1: myisamchk

Вы можете использовать команду myisamchk для восстановления базы данных MySQL в системе Linux. Эта команда может проверять, восстанавливать и оптимизировать таблицы MyISAM. Она может легко восстанавливать файлы .MYD и .MYI, содержащие данные и индексы базы данных. Она не поддерживает разбитые на разделы таблицы. Выполните следующие шаги, чтобы восстановить таблицы MyISAM с помощью команды myisamchk:

  1. Сначала остановите Сервер MySQL в системе Linux. Если вы используете CentOS или Fedora, выполните следующую команду:
    service mysqld stop

    Для Debian и Ubuntu выполните следующую команду:
    service mysql stop
  2. Затем введите приведенную ниже команду, чтобы перейти в каталог с поврежденной базой данных:
    cd /var/lib/mysql
  3. Затем выполните следующую команду, чтобы проверить поврежденные таблицы в базе данных:
    myisamchk table_name
  4. Если вы хотите проверить все таблицы базы данных, выполните следующую команду:
    myisamchk *.MYI
  5. Если в базе данных MySQL обнаружены поврежденные таблицы, восстановите их с помощью следующей команды:
    myisamchk –recover table
  6. Затем перезапустите сервер.
    Для CentOS и Fedora выполните следующую команду:
    service mysqld start

    Для Debian и Ubuntu выполните эту команду:
    service mysql start

Метод 2: Использование метода «Drop and Reload»

Сервер MySQL вызывает сбой InnoDB, если обнаруживает повреждение в таблицах. Вы можете использовать режим принудительного восстановления Innodb и метод «Drop and Reload» для восстановления таблиц InnoDB. Для этого выполните следующие действия:

  1. Сначала создайте файл резервной копии, чтобы предотвратить потерю данных.
  2. Затем перезапустите службу MySQL, выполнив следующую команду:
    sudo systemctl restart mysql
  3. Затем, если сервер не перезапускается, включите режим восстановления InnoDB, чтобы получить доступ к недоступным таблицам MySQL. Для этого измените файл конфигурации my.cnf. Чтобы открыть файл конфигурации, выполните следующую команду:
    sudo nano /etc/mysql/my.cnf
  4. Добавьте следующую строку в раздел [mysqld]:
    innodb_force_recovery=1
  5. Вы можете увеличить уровень восстановления от 1 до 6. Однако увеличение уровня до 4 может привести к потере данных.
  6. Сохраните файл и перезапустите MySQL.

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

  1. Сначала сбросьте все таблицы в базе данных MySQL.
    mysqldump -u [имя пользователя] -p [имя базы данных] [имя таблицы] > dump.sql
    mysql -u [имя пользователя] -p [имя базы данных] > dump.sql
  2. Затем удалите и заново создайте таблицу.
    DROP TABLE [имя таблицы];
    CREATE TABLE [имя_таблицы] (…);
  3. Затем восстановите таблицу с помощью оператора ALTER.
    sql
    ALTER TABLE [имя_таблицы] ENGINE=InnoDB;
  4. Затем отключите режим восстановления InnoDB с помощью следующей строки кода:
    #innodb_force_recovery=…
  5. Сохраните изменения, внесенные в файл конфигурации, а затем запустите сервер MySQL.

Заключение

Поврежденные таблицы базы данных MySQL могут сделать данные недоступными. В этой статье описаны 2 методf восстановления базы данных MySQL в системе Linux. Если у вас есть читаемый файл резервной копии, вы можете восстановить его с помощью Утилиты mysqldump. Однако, если резервная копия недоступна или повреждена, есть возможность использования доступных инструментов для восстановления MySQL в Linux. В такие моменты по-настоящему начинаешь ценить силу резервных копий!

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)