Как сделать восстановление базы данных

Обсуждение установки и настройки поддерживаемых серверов баз данных, а также работы с ними.
Ответить
vikont
Сообщения: 271
Зарегистрирован: Сб ноя 11, 2017 10:51 pm

Как сделать восстановление базы данных

Сообщение vikont » Вт мар 31, 2020 5:10 pm

Меня спрашивают, как я делаю восстановление базы данных!

Наиболее удобным для себя и оптимальным считаю использование команды mysqlcheck серез консоль
Заходим на сервер через SSH. После авторизации вводим команду

Код: Выделить всё

mysqlcheck --no-defaults -u root -p --all-databases --socket=/var/run/mysqld/mysql.sock

Откроется окно для ввода рутового пароля доступа к базам данных. Ввод и ждем окончания операции.
Все!

Так же рекомендую проверить вашу базу на наличие AUTO_INCREMENT. он должен быть включен во всех таблицах где присутствует первичный ключь (желтого цвета). Обычно это поля ID. Если AUTO_INCREMENT не включен, тогда у поля с первичным ключем жмем Изменить и отмечаем чекбокс у AUTO_INCREMENT и жмем Сохранить.
Не лишне сказать, что удобнее все операции с базами данных выполнять череp phpMyAdmin, кроме восстановления. Как то оно там не так работает. Особенно для таблиц InnoDB.

Если ваша MySQL н может стартануть из за проблемы с базой данных, тогда вставьте в конфигурационный файл мускула (обычно /etc/my.cnf строку в секцию mysqld

Код: Выделить всё

#[mysqld]
innodb_force_recovery = 1
Параметру innodb_force_recovery ставится в соответствие числовое значение от 1 до 6. С увеличением значения MySQL становится менее чувствителен к целостности таблиц и запускается. Мне чаще помогает =5 Более подробно можно почитать здесь https://server-gu.ru/innodb-force-recovery/
После запуска MySQL восстанавливаю базу командой из консоли и потом удаляю или комментирую строку innodb_force_recovery символом #, вот так

Код: Выделить всё

#innodb_force_recovery = 5
И конечно же не забываем перезапустить MySQL.

Ответить