Восстановление MySQL таблиц
Приведу пример простой проверки таблиц всех баз данных используя mysqlcheck:
mysqlcheck -u root -p -A
Пример восстановления конкретной базы данных:
mysqlcheck -u root -p -r db_name
mysqlcheck -u root -p -r db_name table_name
Опишу возможные опции запуска.
Проверка всех баз данных и их таблиц, кроме INFORMATION_SCHEMA и performace_schema:
--all-databases, -A
Указать перечень баз можно используя опцию:
--databases, -B
Выполнить все одним запросом вместо отдельных для каждой базы:
--all-in-1, -1
Анализировать таблицы:
--analyze, -a
После проверки выполнить ремонт поврежденных таблиц:
--auto-repair
Указание адреса подключения к MySQL серверу (например если их несколько):
--bind-address=ip_address
Подключение к MySQL серверу на указанном узле:
--host=host_name, -h host_name
Директория с установками символов:
--character-sets-dir=dir_name
Проверка таблиц на наличие ошибок (выполняется по умолчанию):
--check, -c
Проверить таблицы которые были изменены с момента последней проверки или которые не были закрыты должным образом:
--check-only-changed, -C
Проверка таблиц на совместимость с текущей версией сервера:
--check-upgrade, -g
Сжатие данных передаваемым между клиентом и сервером если оба это поддерживают:
--compress
Запись и отображение отладочной информации (на тесте стандартный mysqlcheck в Ubuntu 16.04 был скомпилирован без поддержки debug):
--debug=debug_options
--debug-check
--debug-info
Указание набора символов по умолчанию:
--default-character-set=charset_name
Использование только указанного файла параметров:
--defaults-file=file_name
Указанная ниже опция делает проверку более длительной и гарантирует целостность таблиц, при восстановлении тоже займет много времени и произведет много ненужных строк:
--extended, -e
Проверить только таблицы которые не были закрыты должным образом:
--fast, -F
--force, -f |
Быстрее чем extended, находится 99.99% ошибок:
--medium-check, -m |
Не читать файлы опций, однако файл .mylogin.cnf будет читаться:
--no-defaults |
Оптимизировать таблицы:
--optimize, -o |
Указание пароля при подключении:
--password[=password], -p[password] |
Номер порта TCP/IP для подключения:
--port=port_num, -P port_num |
Отображение имени программы и всех параметров, которые она получает из файлов параметров:
--print-defaults |
Указание протокола подключения:
--protocol={TCP|SOCKET|PIPE|MEMORY} |
Быстрый метод проверки таблиц, предотвращает сканирование строк для проверки неправильных ссылок:
--quick, -q |
Выполнение ремонта:
--repair, -r |
Тихий режим, отображаются только ошибки:
--silent, -s |
Пропустить указанную базу:
--skip-database=db_name |
Указание сокета при подключении:
--socket=path, -S path |
Подключение с использованием SSL:
--ssl* |
Переопределить -databases или -B, все аргументы имени, следующие за опцией, рассматриваются как имена таблиц:
--tables |
Указание перечня протоколов через запятую, которые разрешено использовать при зашифрованных соединениях:
--tls-version=protocol_list |
При восстановление получить структуру таблицы из файла .frm:
--use-frm |
Имя пользователя MySQL, которое будет использоваться при подключении:
--user=user_name, -u user_name |
Подробный режим, отображается больше информации:
--verbose, -v |
Отображение версии mysqlcheck и выход:
--version, -V |