Файлы Базы данных Mysql подвержены повреждениям и несоответствиям. Они могут легко повредиться по нескольким причинам, таким как вирусная атака на компьютер, сбой оборудования, проблемы с программным обеспечением и т. д. Когда база данных повреждена, вы можете не получить к ней доступ или столкнуться с несколькими ошибками. Например:
- Индекс для таблицы global_priv поврежден; попробуйте восстановить его.
- Получена ошибка nnn от обработчика таблиц.
- Неожиданное окончание файла.
- Не удается найти файл tablethatshouldbethere.MYI.
Метод 1: myisamchk
Вы можете использовать команду myisamchk для восстановления базы данных MySQL в системе Linux. Эта команда может проверять, восстанавливать и оптимизировать таблицы MyISAM. Она может легко восстанавливать файлы .MYD и .MYI, содержащие данные и индексы базы данных. Она не поддерживает разбитые на разделы таблицы. Выполните следующие шаги, чтобы восстановить таблицы MyISAM с помощью команды myisamchk:
- Сначала остановите Сервер MySQL в системе Linux. Если вы используете CentOS или Fedora, выполните следующую команду:
service mysqld stop
Для Debian и Ubuntu выполните следующую команду:
service mysql stop
- Затем введите приведенную ниже команду, чтобы перейти в каталог с поврежденной базой данных:
cd /var/lib/mysql
- Затем выполните следующую команду, чтобы проверить поврежденные таблицы в базе данных:
myisamchk table_name
- Если вы хотите проверить все таблицы базы данных, выполните следующую команду:
myisamchk *.MYI
- Если в базе данных MySQL обнаружены поврежденные таблицы, восстановите их с помощью следующей команды:
myisamchk –recover table
- Затем перезапустите сервер.
Для CentOS и Fedora выполните следующую команду:
service mysqld start
Для Debian и Ubuntu выполните эту команду:
service mysql start
Метод 2: Использование метода «Drop and Reload»
Сервер MySQL вызывает сбой InnoDB, если обнаруживает повреждение в таблицах. Вы можете использовать режим принудительного восстановления Innodb и метод «Drop and Reload» для восстановления таблиц InnoDB. Для этого выполните следующие действия:
- Сначала создайте файл резервной копии, чтобы предотвратить потерю данных.
- Затем перезапустите службу MySQL, выполнив следующую команду:
sudo systemctl restart mysql
- Затем, если сервер не перезапускается, включите режим восстановления InnoDB, чтобы получить доступ к недоступным таблицам MySQL. Для этого измените файл конфигурации my.cnf. Чтобы открыть файл конфигурации, выполните следующую команду:
sudo nano /etc/mysql/my.cnf
- Добавьте следующую строку в раздел [mysqld]:
innodb_force_recovery=1
- Вы можете увеличить уровень восстановления от 1 до 6. Однако увеличение уровня до 4 может привести к потере данных.
- Сохраните файл и перезапустите MySQL.
Теперь выполните дамп и перезагрузку таблиц, выполнив следующие действия:
- Сначала сбросьте все таблицы в базе данных MySQL.
mysqldump -u [имя пользователя] -p [имя базы данных] [имя таблицы] > dump.sql mysql -u [имя пользователя] -p [имя базы данных] > dump.sql
- Затем удалите и заново создайте таблицу.
DROP TABLE [имя таблицы]; CREATE TABLE [имя_таблицы] (…);
- Затем восстановите таблицу с помощью оператора ALTER.
sql ALTER TABLE [имя_таблицы] ENGINE=InnoDB;
- Затем отключите режим восстановления InnoDB с помощью следующей строки кода:
#innodb_force_recovery=…
- Сохраните изменения, внесенные в файл конфигурации, а затем запустите сервер MySQL.
Заключение
Поврежденные таблицы базы данных MySQL могут сделать данные недоступными. В этой статье описаны 2 методf восстановления базы данных MySQL в системе Linux. Если у вас есть читаемый файл резервной копии, вы можете восстановить его с помощью Утилиты mysqldump. Однако, если резервная копия недоступна или повреждена, есть возможность использования доступных инструментов для восстановления MySQL в Linux. В такие моменты по-настоящему начинаешь ценить силу резервных копий!




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