Приведу пример простой проверки таблиц всех баз данных используя mysqlcheck:
mysqlcheck -u root -p -A
Где опция -u определяет имя пользователя под которым выполняется подключение к MySQL, -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
Продолжать даже в случае SQL ошибки:
--force, -f
Быстрее чем extended, находится 99.99% ошибок:
--medium-check, -m
Не читать файлы опций, однако файл .mylogin.cnf будет читаться:
--no-defaults
Смотрите также мою статью — Подключение к MySQL из localhost без ввода пароля.
Оптимизировать таблицы:
--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
Смотрите также:
Установка и настройка MySQL сервера на Ubuntu