MySQL восстановление базы данных через SSH для начинающих

Сейчас у многих есть свой сайт, который использует обычно базу данных на MySQL, которая требует регулярного обслуживания. Там неизбежно появляются какие-то ошибки, хоть они обычно мелкие, но они имеют свойство накапливаться. Если не обращать на это несколько месяцев, то возможно возникновение серьёзных проблем.
Как правило, на ранних стадиях, все легко решается просто оптимизацией таблиц (тех, которым эта оптимизация нужна) через phpMyAdmin. Но бывают и запущенные случаи, когда надо восстановить базу MYSQL и отремонтировать её необходимо как можно скорее! Можно воспользоваться тем же самым инструментом — phpMyAdmin, но проблема может оказаться слишком серьезной и phpMyAdmin просто виснет пытаясь восстановить огромную таблицу. Тут то на помощь приходит старая добрая консоль. Всегда можно зайти и все исправить через SSH.

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

mysqlcheck -u ваш_логин_базы -p ваш_пароль_базы –auto-repair –check –optimize –all-databases

На место команды: -u <ваш_логин_базы> — подставляете после «-u» свой логин,  а на место пароля – свой пароль. Тут все просто. Все приведённые далее аргументы обеспечивают проверку базы, и в случае найденных ошибок — восстановление, оптимизацию таблиц. Аргумент «–all-databases» указывает, что будут обработаны все базы данных. Вот так выглядит пример выполнения команды mysqlcheck:

mysqlcheck mysql восстановить базу

Работает эта утилита быстро и справится с тем, на чем намертво повиснет phpMyAdmin!

На случай если вам вдруг понадобятся другие аргументы для утилиты mysqlcheck — вот их полный список:

Спойлер

• -A, —all-databases Проверить все базы данных. Аналогична опции —databases, если указать все базы данных.
• -1, —all-in-1 Вместо выполнения запросов для каждой таблицы в отдельности выполнить все запросы в одном отдельно для каждой таблицы. Имена таблиц будут представлены в виде списка имен, разделенных запятой.
• -a, —analyze Анализировать данные таблицы.
• —auto-repair Если проверенная таблица повреждена, автоматически восстановить ее. Исправления будут произведены после проверки всех таблиц, если были обнаружены повреждения.
• -#, —debug=… Выводит информацию журнала отладки. Часто используется следующий набор параметров: ‘d:t:o,filename’
• —character-sets-dir=… Директория, где находятся установки символов.
• -c, —check Проверить таблицу на наличие ошибок.
• -C, —check-only-changed Проверить только таблицы, измененные со времени последней проверки или некорректно закрытые.
• —compress Использовать сжатие данных в протоколе сервер/клиент.
• -?, —help Вывести данную вспомогательную информацию и выйти из программы.
• -B, —databases Проверить несколько баз данных. Обратите внимание на разницу в использовании: в этом случае таблицы не указываются. Все имена аргументов рассматриваются как имена баз данных.
• —default-character-set=… Установить набор символов по умолчанию.
• -F, —fast Проверить только базы данных, которые не были закрыты должным образом.
• -f, —force Продолжать даже при получении ошибки SQL.
• -e, —extended При использовании данного параметра совместно с CHECK TABLE можно быть на 100 процентов быть уверенным в целостности таблицы, хотя это и займет много времени. Если же использовать этот параметр с REPAIR TABLE, запустится расширенное восстановление таблицы, которое может потребовать не только длительного времени выполнения, но и привнесет также массу ненужных строк!
• -h, —host=… Подключиться к хосту.
• -m, —medium-check Быстрее, чем —extended-check, но находит только 99,99 процентов всех ошибок. Для большинства случаев этот вариант вполне подходит.
• -o, —optimize Оптимизировать таблицу.
• -p, —password[=…] Используемый пароль при подключении к серверу. Если пароль не указан, у пользователя запрашивается пароль с терминала.
• -P, —port=… Номер порта, используемого для подключения по TCP/IP.
• —protocol=(TCP | SOCKET | PIPE | MEMORY)Для указания протокола соединения, который надлежит использовать. Новшество в MySQL 4.1.0.
• -q, —quick При использовании данной опции совместно с CHECK TABLE предотвращается сканирование строк для корректировки неправильных связей. Это наиболее быстрый метод проверки. Если же использовать этот параметр с REPAIR TABLE, программа попытается восстановить только систему индексов. Это наиболее быстрый метод восстановления таблицы.
• -r, —repair Может исправить почти все, за исключением уникальных ключей, имеющих дубликаты.
• -s, —silent Выводить только сообщения об ошибках.
• -S, —socket=… Файл сокета, используемый для подсоединения.
• —tables Перекрывает опцию —databases (-B).
• -u, —user=#Имя пользователя MySQL, если этот пользователь в данное время не является активным.
• -v, —verbose Вывести информацию о различных этапах.
• -V, —version Вывести информацию о версии и выйти из программы.

Кстати, полный список аргументов всегда можно получить, просто введя в командной строке команду mysqlcheck или mysqlcheck -help.

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

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