Что делать при ошибках базы данных MySQL

Автор: Alexandr, 09.09.2020 Рубрики: Сети и интернет

ispravlyaem-oshibki-mysqlЗдравствуйте!

Сегодняшняя заметка будет касаться только достаточно "узкой" категории читателей блога - речь пойдет о базах данных MySQL (и ошибках, при работе с ними...).

Вообще, подобные базы данных используются многими движками сайтов (CMS), причем некоторые из них не блещут высокой безопасностью... Кроме этого, к базе MySQL возможен прямой доступ через веб-интерфейс. А если добавить к этому ошибки при копировании и переносе БД (что бывает очень часто), то, разумеется, всё это вкупе создает определенные риски для данных... 😢

Собственно, ниже рассмотрим, что можно сделать, если появилась-таки ошибка, что база данных недоступна (или не может быть прочитана, или...). Заранее скажу, что подобные ошибки далеко не всегда означает полную утрату БД, во многих случаях удается сравнительно-легко восстановить работоспособность сайта (интернет-магазина, и пр.).

И так...

 

*

Несколько рекомендаций, если возникла ошибка с MySQL БД

👉 Совет 1

Если вы накануне никак не взаимодействовали с БД (например, не переносили сайт с одного сервера на другой), и всё работало в штатном режиме — возможно, что ошибка недоступности к базе связана с возникшими проблемами на стороне хостинг-компании (⇒ запрос в поддержку...).

Кроме этого, обратите внимание на конфигурационные файлы CMS, отвечающие за доступ к базе данных. Возможно, что с самой БД всё в порядке, а вот путь (или пароль) для доступа к ней указан некорректно...

Например, в такой популярной CMS как WordPress, файлом для настройки доступа к БД явл. wp-config.php.

Параметры MySql — эту информацию можно получить у хостинг-провайдера

Параметры MySQL — эту информацию можно получить у хостинг-провайдера

 

*

👉 Совет 2

Еще одна довольно очевидная рекомендация — проверить наличие бэкапа (резервной копии). Даже если вы самостоятельно не делали его — возможно его сделал хостинг-провайдер.

Кроме этого, как только возникла какая-то ошибка с БД — я бы порекомендовал в любом случае сделать ее копию (если это возможно). Вдруг диск начал "сыпаться", и в дальнейшем даже текущая БД исчезнет "на совсем"...

PHP My Admin — экспорт базы данных

PHP My Admin — экспорт базы данных

 

*

👉 Совет 3

Далее следует попробовать провести восстановление БД встроенными средствами MySQL...

Итак, что нужно сделать в случае, если БД MySQL перестала запускаться: 

  1. Откройте файл my.cnf и установите следующий параметр: innodb_force_recovery = 1; 
  2. Перезапустите MySQL следующей командой: /etc/init.d/mysql restart; 
  3. Сделайте дамп БД и запакуйте его: mysqldump db | gzip > db.sql.gz; 
  4. Создайте новую БДmysql -e create database new_DB"; 
  5. Импортируйте туда данныеzcat database.sql.gz | mysql new_DB. 

***

👉 Примечание!

my.cnf — это файл конфигурации MySQL. Чтобы найти файл, используйте команду: locate my.cnf

В Linux'e обычно он находится по такому пути:

/etc/my.cnf
# либо
/etc/mysql/my.cnf

***

Перезапуск MySQL подобным образом не ведет к запуску всех связанных процессов и в некоторых случаях позволяет открыть старую БД. 

С помощью указанных команд мы пробуем создать дамп БД, затем импортировать его в новую базу, которую далее можно будет открыть обычным способом. 

Если это получается, старую БД можно удалить. Кстати, если способ не помогает, и старая база не запускается, нужно пробовать другие значения параметра innodb_force_recovery, вплоть до 6. 

MySQL

MySQL

При нормальном запуске БД система пытается запустить все процессы, включая и те, которые были завершены аварийно (например, из-за проблем с электричеством).

Благодаря опции innodb_force_recovery можно отключить некоторые параметры, которые мешают штатному запуску БД.

Цифры означают следующее: 

  1. Запуск MySQL не останавливается, даже если система в процессе запуска обнаруживает поврежденные страницы;
  2. Отмена запуска фоновых операций;
  3. Отмена попыток отката транзакций;
  4. Отказ от расчета статистики и использования сохраненных изменений;
  5. Не учитывает логи отката при запуске;
  6. Не учитывает параметры ib_logfiles во время запуска.

 

*

👉 Совет 4 (альтернативный способ восстановления БД)

Описанный выше способ довольно эффективен, хотя, к сожалению, может оказаться сложным для некоторых пользователей. Но работа с любым форматом базы данных — это всегда непросто...

Если нет желания редактировать конфиги, открывать командную строку и изучать синтаксис нужных команд, то нужен достаточно простой и дружелюбный в использовании инструмент, например, такой как Recovery Toolbox for MySQL. (👇)

Recovery Toolbox for MySQL — скриншот главного окна программы

Recovery Toolbox for MySQL — скриншот главного окна программы

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

Вариантов, собственно, немного — разобраться со всем самому, потратив несколько дней, или в течение часа восстановить базу данных, продолжить работу и избежать убытков.

Стоит сразу отметить, что Recovery Toolbox for MySQL работает только с копией базы, поэтому никогда не испортит то, что осталось от старой БД. Почувствуйте разницу, копаясь в конфигах и настройках «боевого» сервера, и каждую минуту опасаясь сделать что-то неправильно, что приведет к полному уничтожению того, что еще осталось...

*

👉 Как восстановить базу с помощью Recovery Toolbox for MySQL:

Для восстановления поврежденной БД MySQL при помощи этой программы нужно сделать следующее:

  1. Скачать Recovery Toolbox for MySQL с офиц. сайта: https://mysql.recoverytoolbox.com/ru/;
  2. Установить и запустить программу;
  3. Выбрать папку, в которой хранятся файлы поврежденной базы данных MySQL (предварительно создайте копию);
  4. Выбрать поврежденную базу данных из списка
  5. Запустить анализ выбранной БД;
  6. Просмотреть результаты восстановления: таблицы, объекты, индексы;
  7. Настроить способ сохранения восстановленных данных;
  8. Сохранить данные (доступно в полной версии). Пример на скриншоте ниже. 👇
Пример восстановления БД

Пример восстановления БД

 

Программа загружается совершенно бесплатно и устанавливается без регистрации. С помощью Recovery Toolbox for MySQL можно бесплатно просматривать восстановленные данные, оценивать эффективность работы.

Можно даже подсмотреть какие-то изменения и легко внести их руками в «протухший», но еще пригодный к использованию бэкап. Заплатить предложат только в том случае, если потребуется сохранить восстановленные данные, пересоздать базу MySQL и подключить ее к системе.

База восстановлена - сохранить?

База восстановлена - сохранить?

 

*

👉 "Пару слов" о безопасности при работе с Recovery Toolbox for MySQL

Самое главное – программа всегда работает только с копией исходной базы, поэтому этот способ восстановления намного надежнее, чем вносить изменения в конфиги БД и смотреть, что из этого получится. Помните, попытка ремонта БД на "продакшн" сервере может окончательно добить ее, такое бывает даже у опытных админов...

Также стоит отметить, что Recovery Toolbox for MySQL не использует сторонние подключения. В процессе восстановления (может занять довольно продолжительное время, в зависимости от размеров исходной базы данных) ПО не использует доступ к Интернет.

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

Есть способ чуть сложнее: установить анализатор сетевого траффика (советую WireShark, NetLimiter) и проверить, не идут ли подозрительные пакеты от Recovery Toolbox for MySQL.

👉 В помощь!

Как запретить программе доступ к интернету (блокировка входящего/исходящего трафика)

Конечно, этот способ предполагает некий здоровый энтузиазм, желание познать новое (мануалы на WireShark совсем немаленькие) и, самое главное, наличие свободного времени...

 

*

Дополнения по теме — не помешают!

Всем успехов!

👋

Пост по заметкам

от компании Recovery Toolbox

Написать комментарий 📎

 

Прикрепить картинку, скрин:

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

  • Интересное
  • Оптимизируем и ускоряем
  • Удаляем вирусы
  • Настраиваем звук
  •