Восстановление MySQL таблиц

Приведу пример простой проверки таблиц всех баз данных используя 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

Оставьте комментарий

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