О web-разработке
и даже немного больше...

Исправление ошибок в базе MySQL

Одной из ярких причин возникновения ошибок в базе данных может послужить неправильная остановка сервера MySQL. Как это обычно бывает, сбой в электропитании сервера, либо иные причины, повлекшие за собой банальное отключение машины, либо перезагрузку. Иногда, и нередко подобного рода сбои могут повлечь за собой проблемы, которые решаются лишь путем восстановления данных из бэкапа, и это к вопросу для чего нужно делать бэкапы. Наличие ошибок в базе данных может проявиться не сразу, однако если они есть, то вы их рано или поздно обязательно заметите. Проблемы, как правило, проявляются в виде ошибок после запросов к базе, либо база начинает уходить в раздумье на не свойственное для этого время.
Давайте посмотрим, что можно предпринять первым делом, чтобы попытаться исправить ситуацию. Утилита mysqlcheck как правило устанавливается по умолчанию с сервером MySQL может быть использована для проверки баз данных на ошибки. Рассмотрим пример ее использования.

Использование утилиты mysqlcheck

# mysqlcheck -u root -p --optimize --auto-repair --all-databases

Назначение параметров:

--optimize – Оптимизируем все базы.
--auto-repair – Ремонтируем все базы.
--all-databases – Проверяем ошибки у всех баз.

Если база данных больших размеров, а вам нужно срочно поправить определенную таблицу, то вы можете запустить проверку определенной таблицы в базе данных.

Проверка отдельной таблицы в базе данных:

# mysqlcheck -r имя_базы имя_таблицы_в_базе -u root -p

Исправление таблиц MyISAM.
Так же существует утилита myisamchk, отличается от предыдущей утилиты тем, что перед её использованием необходимо останавливать сервер баз данных, в то время как mysqlcheck может использоваться при работающем сервере. Рассмотрим пример использования утилиты myisamchk.

Останавливаем сервер MySQL

# service mysqld stop

Анализируем базу данных на наличие ошибок

# myisamchk -s /var/db/mysql/наша_база/*.MYI

Обратите внимание, что путь к базам данных у вас может отличаться, этот момент вам следует так же уточнить. Если есть ошибки, то появиться сообщение подобного вида:

myisamchk: warning: 2 client is using or hasn't closed the table properly
MyISAM-table '/var/db/mysql/наша_база/ary_mem.MYI' is usable but should be fixed

Исправляем ошибки с помощью myisamchk

# myisamchk -r /var/db/mysql/наша_база/ary_mem.MYI

Исправляем ошибки по всем таблицам в базе (рекурсивно)

# myisamchk -r /var/db/mysql/наша_база/*.MYI

Процесс исправления ошибок будет сопровождаться подобным выводом сообщений в окне консоли:

- Fixing index 1
- Fixing index 2
- Fixing index 3

После того как ошибки исправлены, можно запустить сервер MySQL, чтобы убедиться что всё в порядке.
Запуск сервера MySQL

# service mysqld start

Хотелось бы отметить один момент, что команды остановки и запуска сервера MySQL, а так же пути расположения баз данных на вашем сервере могут отличаться, поэтому вам так же следует эти моменты учесть.

Опубликован: 26.02.2017 г.

См. также:

Работа с базой данных в WordPress
SQL-запросы для смены домена в WordPress
Как изменить тип таблиц в MySQL?
Изменение кодировки таблиц в базе MySQL
Фильтрация по полю DateTime в MySQL
Меняем пароль root в MySQL 5.7
Восстановление пароля root в MySQL
Утилита Mytop для MySQL

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

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

Комментарии
  • Загрузка...
Друзья сайта