4.5.6 mysqlpump — Программа резервного копирования базы данных
Утилита-клиент mysqlpump выполняет резервное копирование, создавая набор SQL-команд, которые можно выполнить, чтобы воспроизвести исходные определения объектов базы данных и данные таблиц. Она экспортирует одну или несколько баз данных MySQL для резервного копирования или переноса на другой сервер SQL.
Функции mysqlpump включают:
Параллельная обработка баз данных и объектов внутри баз данных для ускорения процесса экспорта
Более точный контроль над тем, какие базы данных и объекты баз данных (таблицы, хранимые программы, учетные записи пользователей) должны быть экспортированы
Экспорт учетных записей пользователей в виде команд управления учетными записями (
CREATE USER,GRANT), а не как вставки в базу данных системыmysqlВозможность создания сжатого вывода
Индикатор выполнения (значения являются оценками)
Для перезагрузки файла экспорта, более быстрое создание вторичных индексов для таблиц
InnoDBпутем добавления индексов после вставки строк
mysqlpump требует, как минимум, привилегии SELECT для экспортируемых таблиц, SHOW VIEW для экспортируемых представлений, TRIGGER для экспортируемых триггеров и LOCK TABLES, если не используется опция --single-transaction. Привилегия SELECT на базе данных системы mysql требуется для экспорта определений пользователей. Некоторые параметры могут потребовать других привилегий, как указано в описаниях параметров.
Для перезагрузки файла экспорта необходимо иметь привилегии, необходимые для выполнения содержащихся в нём команд, такие как соответствующие CREATE привилегии для объектов, созданных этими командами.
Экспорт, выполненный с использованием PowerShell на Windows с перенаправлением вывода, создаёт файл с кодировкой UTF-16:
mysqlpump [options] > dump.sql
Однако UTF-16 не допускается как кодировка соединения (см. Раздел 10.4, «Наборы символов и сопоставления соединения»), поэтому файл экспорта не загружается корректно. Чтобы обойти эту проблему, используйте параметр --result-file, который создаёт вывод в формате ASCII:
mysqlpump [options] --result-file=dump.sql
Синтаксис вызова mysqlpump
По умолчанию, mysqlpump экспортирует все базы данных (с определёнными исключениями, указанными в Разделе ограничений mysqlpump). Для явного указания этого поведения используйте опцию --all-databases:
mysqlpump --all-databases
Для экспорта одной базы данных или определённых таблиц в этой базе данных, укажите имя базы данных в командной строке, необязательно с последующими именами таблиц:
mysqlpump db_name
mysqlpump db_name tbl_name1 tbl_name2 ...
Для обработки всех имен аргументов как имён баз данных, используйте опцию --databases:
mysqlpump --databases db_name1 db_name2 ...
По умолчанию, mysqlpump не экспортирует определения учетных записей пользователей, даже если экспортируется база данных системы mysql, содержащая таблицы разрешений. Чтобы экспортировать содержимое таблиц разрешений как логические определения в виде команд CREATE USER и GRANT, используйте опцию --users и подавите экспорт всех баз данных:
mysqlpump --exclude-databases=% --users
В предыдущей команде % — это символ подстановки, который соответствует всем именам баз данных для опции --exclude-databases.
mysqlpump поддерживает несколько опций для включения или исключения баз данных, таблиц, хранимых программ и определений пользователей. См. Выбор объектов mysqlpump.
Для перезагрузки файла экспорта выполните содержащиеся в нём команды. Например, используйте клиент mysql:
mysqlpump [options] > dump.sql
mysql < dump.sql
Далее приведено дополнительное описание примеров использования mysqlpump.
Для просмотра списка поддерживаемых опций mysqlpump, введите команду mysqlpump --help.
Обзор параметров mysqlpump
mysqlpump поддерживает следующие параметры, которые можно указать в командной строке или в группах [mysqlpump] и [client] файла параметров. (До версии MySQL 5.7.30 mysqlpump считывал группу [mysql_dump], а не [mysqlpump]. Начиная с версии 5.7.30, [mysql_dump] всё ещё принимается, но устарела.) Дополнительную информацию о файлах параметров, используемых MySQL-программами, можно найти в Разделе 4.2.2.2, «Использование файлов параметров».
Таблица 4.18 Параметры mysqlpump
| Название параметра | Описание | Введено |
|---|
| --add-drop-database | Добавить оператор DROP DATABASE перед каждым оператором CREATE DATABASE | |
|---|---|---|
| --add-drop-table | Добавить оператор DROP TABLE перед каждым оператором CREATE TABLE | |
| --add-drop-user | Добавить оператор DROP USER перед каждым оператором CREATE USER | |
| --add-locks | Окружить каждый дамп таблицы операторами LOCK TABLES и UNLOCK TABLES | |
| --all-databases | Сделать дамп всех баз данных | |
| --bind-address | Использовать указанный сетевой интерфейс для подключения к MySQL Server | |
| --character-sets-dir | Директория, где установлены наборы символов | |
| --complete-insert | Использовать полные операторы INSERT, включающие имена столбцов | |
| --compress | Сжать всю информацию, передаваемую между клиентом и сервером | |
| --compress-output | Алгоритм сжатия вывода | |
| --databases | Рассматривать все имена аргументов как имена баз данных | |
| --debug | Записать отладочный журнал | |
| --debug-check | Вывести отладочную информацию при выходе программы | |
| --debug-info | Вывести отладочную информацию, статистику памяти и ЦП при выходе программы | |
| --default-auth | Плагин аутентификации для использования | |
| --default-character-set | Указать набор символов по умолчанию | |
| --default-parallelism | Количество потоков по умолчанию для параллельной обработки | |
| --defaults-extra-file | Прочитать файл опций с указанным именем дополнительно к обычным файлам опций | |
| --defaults-file | Прочитать только файл опций с указанным именем | |
| --defaults-group-suffix | Значение суффикса группы опций | |
| --defer-table-indexes | При перегрузке отложить создание индексов до загрузки строк таблицы | |
| --events | Сделать дамп событий из экспортированных баз данных | |
| --exclude-databases | Базы данных, которые следует исключить из дампа | |
| --exclude-events | События, которые следует исключить из дампа | |
| --exclude-routines | Процедуры и функции, которые следует исключить из дампа | |
| --exclude-tables | Таблицы, которые следует исключить из дампа | |
| --exclude-triggers | Триггеры, которые следует исключить из дампа | |
| --exclude-users | Пользователей, которые следует исключить из дампа | |
| --extended-insert | Использовать синтаксис INSERT для нескольких строк | |
| --get-server-public-key | Запросить открытый ключ RSA у сервера | 5.7.23 |
| --help | Отобразить сообщение справки и выйти | |
| --hex-blob | Сделать дамп бинарных столбцов в шестнадцатеричном формате | |
| --host | Хост, на котором расположен MySQL сервер | |
| --include-databases | Базы данных, которые следует включить в дамп | |
| --include-events | События, которые следует включить в дамп | |
| --include-routines | Процедуры и функции, которые следует включить в дамп | |
| --include-tables | Таблицы, которые следует включить в дамп | |
| --include-triggers | Триггеры, которые следует включить в дамп | |
| --include-users | Пользователей, которые следует включить в дамп | |
| --insert-ignore | Записать INSERT IGNORE вместо операторов INSERT | |
| --log-error-file | Добавлять предупреждения и ошибки в указанный файл | |
| --login-path | Прочитать опции пути входа из .mylogin.cnf | |
| --max-allowed-packet | Максимальная длина пакета для отправки или получения от сервера | |
| --net-buffer-length | Размер буфера для TCP/IP и сокетного обмена | |
| --no-create-db | Не записывать операторы CREATE DATABASE | |
| --no-create-info | Не записывать операторы CREATE TABLE, которые повторно создают каждую экспортируемую таблицу | |
| --no-defaults | Не читать файлы опций | |
| --parallel-schemas | Указать параллельность обработки схем | |
| --password | Пароль для подключения к серверу | |
| --plugin-dir | Директория, где установлены плагины | |
| --port | Номер порта TCP/IP для подключения | |
| --print-defaults | Вывести опции по умолчанию | |
| --protocol | Транспортный протокол для использования | |
| --replace | Записать операторы REPLACE вместо операторов INSERT | |
| --result-file | Направить вывод в указанный файл | |
| --routines | Сделать дамп хранимых процедур и функций из экспортированных баз данных | |
| --secure-auth | Не отправлять пароли на сервер в старом формате (до 4.1) | |
| --server-public-key-path | Имя пути к файлу, содержащему открытый ключ RSA | 5.7.23 |
| --set-charset | Добавить SET NAMES default_character_set к выводу | |
| --set-gtid-purged | Добавлять SET @@GLOBAL.GTID_PURGED к выводу | 5.7.18 |
| --single-transaction | Экспортировать таблицы в рамках одной транзакции | |
| --skip-definer | Исключить пункты DEFINER и SQL SECURITY из операторов CREATE для представлений и хранимых программ | |
| --skip-dump-rows | Не делать дамп строк таблиц | |
| --socket | Файл Unix-сокет или именованная труба Windows для использования | |
| --ssl | Включить шифрование соединения | |
| --ssl-ca | Файл, содержащий список доверенных центров сертификации SSL |
| --ssl-capath | Директория, содержащая файлы сертификатов уполномоченных центров сертификации SSL | |
|---|---|---|
| --ssl-cert | Файл, содержащий сертификат X.509 | |
| --ssl-cipher | Допустимые шифры для шифрования соединения | |
| --ssl-crl | Файл, содержащий списки отозванных сертификатов | |
| --ssl-crlpath | Директория, содержащая файлы списков отозванных сертификатов | |
| --ssl-key | Файл, содержащий ключ X.509 | |
| --ssl-mode | Требуемое состояние безопасности соединения с сервером | 5.7.11 |
| --ssl-verify-server-cert | Проверка имени хоста по имени общего домена сертификата сервера | |
| --tls-version | Допустимые протоколы TLS для зашифрованных соединений | 5.7.10 |
| --triggers | Выгрузить триггеры для каждой выгруженной таблицы | |
| --tz-utc | Добавить SET TIME_ZONE='+00:00' в файл выгрузки | |
| --user | Имя пользователя MySQL, используемое при подключении к серверу | |
| --users | Выгрузить учетные записи пользователей | |
| --version | Отобразить информацию о версии и завершить работу | |
| --watch-progress | Отобразить индикатор выполнения |
Описание параметров mysqlpump
-
--help,-?Формат командной строки --helpОтобразить сообщение справки и завершить работу.
-
Формат командной строки --add-drop-databaseЗаписать оператор
DROP DATABASEперед каждым операторомCREATE DATABASE. -
Формат командной строки --add-drop-tableЗаписать оператор
DROP TABLEперед каждым операторомCREATE TABLE. -
Формат командной строки --add-drop-userЗаписать оператор
DROP USERперед каждым операторомCREATE USER. -
Формат командной строки --add-locksОкружить каждый дамп таблицы операторами
LOCK TABLESиUNLOCK TABLES. Это приводит к более быстрому выполнению операций вставки при повторном загрузке файла дампа. См. Раздел 8.2.4.1, «Оптимизация операторов INSERT».Этот параметр не работает с параллелизмом, так как операторы
INSERTиз разных таблиц могут быть переставлены, иUNLOCK TABLESпосле завершения вставки для одной таблицы могут освободить блокировки для таблиц, для которых вставки ещё не завершены.Параметры
--add-locksи--single-transactionявляются взаимоисключающими. -
--all-databases,-AФормат командной строки --all-databasesДампить все базы данных (с некоторыми исключениями, указанными в mysqlpump Restrictions). Это поведение по умолчанию, если явно не указано другое.
Параметры
--all-databasesи--databasesявляются взаимоисключающими. -
Формат командной строки --bind-address=ip_addressНа компьютере с несколькими сетевыми интерфейсами этот параметр используется для выбора интерфейса, который будет использоваться для подключения к серверу MySQL.
-
Формат командной строки --character-sets-dir=dir_nameТип Имя каталога Каталог, в котором установлены наборы символов. См. Раздел 10.15, «Настройка наборов символов».
-
Формат командной строки --complete-insertЗаписать полные операторы
INSERT, включающие имена столбцов. -
--compress,-CФормат командной строки --compress[={OFF|ON}]Тип Булево Значение по умолчанию OFFПри возможности сжать всю информацию, передаваемую между клиентом и сервером. См. Раздел 4.2.6, «Управление сжатием соединений».
-
Формат командной строки --compress-output=algorithmТип Перечисление Допустимые значения LZ4ZLIBПо умолчанию mysqlpump не сжимает вывод. Этот параметр задаёт сжатие вывода с использованием указанного алгоритма. Разрешенные алгоритмы:
LZ4иZLIB.Для распаковки сжатого вывода необходимо иметь соответствующую утилиту. Если системные команды lz4 и openssl zlib недоступны, дистрибутивы MySQL с версии 5.7.10 включают утилиты lz4_decompress и zlib_decompress, которые можно использовать для распаковки вывода mysqlpump, сжатого с помощью параметров
--compress-output=LZ4и--compress-output=ZLIB. Дополнительная информация в Разделе 4.8.1, «lz4_decompress — Распаковать сжатый mysqlpump LZ4-выход» и Разделе 4.8.5, «zlib_decompress — Распаковать сжатый mysqlpump ZLIB-выход».Альтернативы включают команды lz4 и
openssl, если они установлены в вашей системе. Например, lz4 может распаковатьLZ4вывод:lz4 -d
input_file output_fileZLIBвывод можно распаковать так:openssl zlib -d <
input_file>output_file -
--databases,-BФормат командной строки --databasesОбычно mysqlpump рассматривает первое имя в аргументах командной строки как имя базы данных, а последующие имена — как имена таблиц. С этим параметром все имена аргументов рассматриваются как имена баз данных. Операторы
CREATE DATABASEвключаются в вывод перед каждой новой базой данных.Параметры
--all-databasesи--databasesявляются взаимоисключающими.
-
--debug[=,debug_options]-# [debug_options]Формат командной строки --debug[=debug_options]Тип Строка Значение по умолчанию d:t:O,/tmp/mysqlpump.traceЗаписать журнал отладки. Типичная строка
debug_optionsимеет видd:t:o,. По умолчанию используетсяfile_named:t:O,/tmp/mysqlpump.trace.Этот параметр доступен только в том случае, если MySQL был скомпилирован с использованием
WITH_DEBUG. Выпущенные бинарные файлы MySQL, предоставляемые Oracle, не скомпилированы с использованием этого параметра. -
Формат командной строки --debug-checkТип Булево Значение по умолчанию FALSEВывести информацию для отладки при завершении программы.
Этот параметр доступен только в том случае, если MySQL был скомпилирован с использованием
WITH_DEBUG. Выпущенные бинарные файлы MySQL, предоставляемые Oracle, не скомпилированы с использованием этого параметра. -
--debug-info,-TФормат командной строки --debug-infoТип Булево Значение по умолчанию FALSEВывести информацию для отладки, а также статистику использования памяти и ЦП при завершении программы.
Этот параметр доступен только в том случае, если MySQL был скомпилирован с использованием
WITH_DEBUG. Выпущенные бинарные файлы MySQL, предоставляемые Oracle, не скомпилированы с использованием этого параметра. -
Формат командной строки --default-auth=pluginТип Строка Указание о том, какой плагин проверки подлинности клиента использовать. См. Раздел 6.2.13, «Плагины аутентификации».
-
--default-character-set=charset_nameФормат командной строки --default-character-set=charset_nameТип Строка Значение по умолчанию utf8Использовать
charset_nameв качестве кодировки по умолчанию. См. Раздел 10.15, «Настройка кодировок». Если кодировка не указана, mysqlpump используетutf8. -
Формат командной строки --default-parallelism=NТип Целое число Значение по умолчанию 2Число потоков по умолчанию для каждой очереди параллельной обработки. По умолчанию используется 2 потока.
Параметр
--parallel-schemasтакже влияет на параллелизм и может быть использован для переопределения значения по умолчанию. Дополнительная информация приведена в mysqlpump Параллельная обработка.При использовании
--default-parallelism=0без параметра--parallel-schemas, mysqlpump выполняется как однопоточная программа и не создает очереди.При включенном паралеллизме возможна интерлейвция вывода из разных баз данных.
ПримечаниеДо MySQL 5.7.11, использование параметра
--single-transactionнесовместимо с параллелизмом. Для использования--single-transactionотключите параллелизм, установив--default-parallelismв 0 и не используя никакие параметры--parallel-schemas:mysqlpump --single-transaction --default-parallelism=0
-
--defaults-extra-file=file_nameФормат командной строки --defaults-extra-file=file_nameТип Имя файла Прочитать этот файл параметров после глобального файла параметров, но (на Unix) перед пользовательским файлом параметров. Если файл не существует или недоступен, произойдет ошибка. Если
file_nameне является абсолютным путем, он интерпретируется относительно текущего каталога.Дополнительную информацию об этом и других параметрах файла параметров см. в Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».
-
Формат командной строки --defaults-file=file_nameТип Имя файла Использовать только указанный файл параметров. Если файл не существует или недоступен, произойдет ошибка. Если
file_nameне является абсолютным путем, он интерпретируется относительно текущего каталога.Исключение: даже с
--defaults-file, клиентские программы читают.mylogin.cnf.Дополнительную информацию об этом и других параметрах файла параметров см. в Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».
-
Формат командной строки --defaults-group-suffix=strТип Строка Читать не только обычные группы параметров, но также группы с обычными именами и суффиксом
str. Например, mysqlpump обычно читает группы[client]и[mysqlpump]. Если этот параметр задан как--defaults-group-suffix=_other, mysqlpump также читает группы[client_other]и[mysqlpump_other].Дополнительную информацию об этом и других параметрах файла параметров см. в Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».
-
Формат командной строки --defer-table-indexesТип Булево Значение по умолчанию TRUEВ выводе дампа отложить создание индексов таблицы до загрузки строк. Это работает для всех хранилищ данных, но для
InnoDBприменяется только для вторичных индексов.Этот параметр включен по умолчанию; отключить его можно с помощью
--skip-defer-table-indexes.
-
Формат командной строки --eventsТип Boolean Значение по умолчанию TRUEВключать события Планировщика событий для дампинга баз данных в выходные данные. Для дампа событий требуются права
EVENTдля этих баз данных.Выходные данные, сгенерированные с использованием
--events, содержат операторыCREATE EVENTдля создания событий. Однако эти операторы не включают такие атрибуты, как метки времени создания и изменения события, поэтому при перезагрузке событий они создаются с метками времени, равными времени перезагрузки.Если вам необходимо, чтобы события создавались с их исходными атрибутами метки времени, не используйте
--events. Вместо этого напрямую экспортируйте и загрузите содержимое таблицыmysql.event, используя учетную запись MySQL, которая имеет соответствующие права для базы данныхmysql.Эта опция включена по умолчанию; используйте
--skip-events, чтобы отключить её. -
Формат командной строки --exclude-databases=db_listТип String Не выполнять дамп баз данных в
db_list, что представляет собой список из одного или нескольких имён баз данных, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection. -
Формат командной строки --exclude-events=event_listТип String Не выполнять дамп баз данных в
event_list, что представляет собой список из одного или нескольких имён событий, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection. -
--exclude-routines=routine_listФормат командной строки --exclude-routines=routine_listТип String Не выполнять дамп событий в
routine_list, что представляет собой список из одного или нескольких имён подпрограмм (хранимых процедур или функций), разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection. -
Формат командной строки --exclude-tables=table_listТип String Не выполнять дамп таблиц в
table_list, что представляет собой список из одного или нескольких имён таблиц, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection. -
--exclude-triggers=trigger_listФормат командной строки --exclude-triggers=trigger_listТип String Не выполнять дамп триггеров в
trigger_list, что представляет собой список из одного или нескольких имён триггеров, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection. -
Формат командной строки --exclude-users=user_listТип String Не выполнять дамп учётных записей пользователей в
user_list, что представляет собой список из одного или нескольких имён учётных записей, разделённых запятыми. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection. -
Формат командной строки --extended-insert=NЗаписывать операторы
INSERTс использованием синтаксиса нескольких строк, который включает несколько списковVALUES. Это приводит к созданию меньшего файла дампа и ускоряет вставку при перезагрузке файла.Значение параметра указывает количество строк, которые необходимо включить в каждый оператор
INSERT. Значение по умолчанию равно 250. Значение 1 создаёт один операторINSERTна строку таблицы. -
Формат командной строки --get-server-public-keyВведено 5.7.23 Тип Boolean Запросить у сервера открытый ключ, необходимый для обмена паролями на основе пары ключей RSA. Этот параметр применяется к клиентам, которые аутентифицируются с помощью плагина аутентификации
caching_sha2_password. Для этого плагина сервер не отправляет открытый ключ, если его не запрашивают. Этот параметр игнорируется для учетных записей, которые не аутентифицируются с помощью этого плагина. Он также игнорируется, если не используется обмен паролями на основе RSA, как это имеет место, когда клиент подключается к серверу с использованием защищенного соединения.Если указан
--server-public-key-path=и указывает на допустимый файл открытого ключа, он имеет приоритет надfile_name--get-server-public-key.Для получения информации о плагине
caching_sha2_passwordсм. Раздел 6.4.1.4, «Кэширование SHA-2 подключаемой аутентификации».Параметр
--get-server-public-keyбыл добавлен в MySQL 5.7.23. -
Формат командной строки --hex-blobВыполнять дамп бинарных столбцов с использованием шестнадцатеричной нотации (например,
'abc'становится0x616263). Затронутые типы данных —BINARY,VARBINARY,BLOBтипы,BIT, все пространственные типы данных и другие небинарные типы данных при использовании с набором символовbinary. -
--host=,host_name-hhost_nameФормат командной строки --hostВыполнять дамп данных с сервера MySQL на указанном хосте.
-
Формат командной строки --include-databases=db_listТип String Выполнять дамп баз данных в
db_list, что представляет собой список из одного или нескольких имён баз данных, разделённых запятыми. Дамп включает все объекты в указанных базах данных. Несколько экземпляров этой опции являются аддитивными. Для получения дополнительной информации см. mysqlpump Object Selection.
-
Формат командной строки --include-events=event_listТип Строка Выгрузить события в
event_list, представляющем собой список одного или нескольких имён событий, разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump. -
--include-routines=routine_listФормат командной строки --include-routines=routine_listТип Строка Выгрузить процедуры в
routine_list, представляющем собой список одного или нескольких имён процедур (хранимых процедур или функций), разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump. -
Формат командной строки --include-tables=table_listТип Строка Выгрузить таблицы в
table_list, представляющем собой список одного или нескольких имён таблиц, разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump. -
--include-triggers=trigger_listФормат командной строки --include-triggers=trigger_listТип Строка Выгрузить триггеры в
trigger_list, представляющем собой список одного или нескольких имён триггеров, разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump. -
Формат командной строки --include-users=user_listТип Строка Выгрузить учётные записи пользователей в
user_list, представляющем собой список одного или нескольких имён пользователей, разделённых запятыми. Несколько экземпляров этого параметра суммируются. Для получения дополнительной информации см. Выбор объектов mysqlpump. -
Формат командной строки --insert-ignoreЗаписать операторы
INSERT IGNOREвместо операторовINSERT. -
Формат командной строки --log-error-file=file_nameТип Имя файла Записывать сообщения об ошибках и предупреждения, добавляя их в указанный файл. Если этот параметр не указан, mysqlpump записывает предупреждения и ошибки в стандартный вывод ошибок.
-
Формат командной строки --login-path=nameТип Строка Читать параметры из указанного пути входа в файле параметров входа
.mylogin.cnf. «Путь входа» — это группа параметров, содержащая параметры, указывающие, к какому серверу MySQL подключиться и под какой учётной записью авторизоваться. Для создания или изменения файла пути входа используйте утилиту mysql_config_editor. См. Раздел 4.6.6, «mysql_config_editor — Утилита конфигурации MySQL».Дополнительную информацию об этом и других параметрах файлов см. в Разделе 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».
-
Формат командной строки --max-allowed-packet=NТип Числовой Значение по умолчанию 25165824Максимальный размер буфера для клиентско-серверного взаимодействия. По умолчанию 24 МБ, максимальный 1 ГБ.
-
Формат командной строки --net-buffer-length=NТип Числовой Значение по умолчанию 1047552Начальный размер буфера для клиентско-серверного взаимодействия. При создании операторов
INSERTс несколькими строками (как при использовании параметра--extended-insert), mysqlpump создаёт строки длиной доNбайтов. Если вы используете этот параметр для увеличения значения, убедитесь, что системная переменная сервера MySQLnet_buffer_lengthимеет значение, по крайней мере, такое же большое. -
Формат командной строки --no-create-dbЗапретить операторы
CREATE DATABASE, которые могли бы быть включены в вывод. -
--no-create-info,-tФормат командной строки --no-create-infoНе записывать операторы
CREATE TABLE, создающие каждую выгруженную таблицу. -
Формат командной строки --no-defaultsНе читать файлы параметров. Если запуск программы завершится ошибкой из-за чтения неизвестных параметров из файла параметров,
--no-defaultsможет использоваться для предотвращения их чтения.Исключением является файл
.mylogin.cnf, который читается всегда, если он существует. Это позволяет указывать пароли более безопасно, чем в командной строке, даже когда используется--no-defaults. Для создания файла.mylogin.cnfиспользуйте утилиту mysql_config_editor. См. Раздел 4.6.6, «mysql_config_editor — Утилита конфигурации MySQL».Дополнительную информацию об этом и других параметрах файлов см. в Разделе 4.2.2.3, «Параметры командной строки, влияющие на обработку файлов параметров».
-
--parallel-schemas=[N:]db_listФормат командной строки --parallel-schemas=[N:]schema_listТип Строка Создать очередь для обработки баз данных в
db_list, которая представляет собой список одного или нескольких имён баз данных, разделённых запятыми. Если указаноN, очередь используетNпотоков. ЕслиNне указано, количество потоков очереди определяется опцией--default-parallelism.Несколько экземпляров этой опции создают несколько очередей. mysqlpump также создаёт стандартную очередь для баз данных, не указанных ни в одной опции
--parallel-schemas, и для выгрузки пользовательских определений, если опции командной строки их выбирают. Для получения дополнительной информации см. mysqlpump Параллельная обработка. -
--password[=,password]-p[password]Формат командной строки --password[=password]Тип Строка Пароль учётной записи MySQL, используемой для подключения к серверу. Значение пароля необязательно. Если оно не указано, mysqlpump запросит его. Если указано, между
--password=или-pи последующим паролем не должно быть пробелов. Если опция пароля не указана, по умолчанию пароль не отправляется.Указание пароля в командной строке следует считать небезопасным. Чтобы избежать ввода пароля в командной строке, используйте файл опций. См. Раздел 6.1.2.1, «Руководство для конечных пользователей по безопасности паролей».
Чтобы явно указать, что пароль отсутствует и что mysqlpump не должен запрашивать его, используйте опцию
--skip-password. -
Формат командной строки --plugin-dir=dir_nameТип Имя каталога Каталог, в котором следует искать плагины. Укажите эту опцию, если опция
--default-authиспользуется для указания плагина аутентификации, но mysqlpump не находит его. См. Раздел 6.2.13, «Подключаемая аутентификация». -
--port=,port_num-Pport_numФормат командной строки --port=port_numТип Числовое Значение по умолчанию 3306Номер порта для подключений TCP/IP.
-
Формат командной строки --print-defaultsВывести имя программы и все опции, полученные из файлов опций.
Дополнительную информацию об этой и других опциях файлов опций см. в Разделе 4.2.2.3, «Опции командной строки, влияющие на обработку файлов опций».
-
--protocol={TCP|SOCKET|PIPE|MEMORY}Формат командной строки --protocol=typeТип Строка Значение по умолчанию [see text]Допустимые значения TCPSOCKETPIPEMEMORYТранспортный протокол для подключения к серверу. Это полезно, когда другие параметры подключения обычно приводят к использованию протокола, отличного от желаемого. Подробности о допустимых значениях см. в Разделе 4.2.5, «Протоколы транспортного подключения».
-
Формат командной строки --replace -
Формат командной строки --result-file=file_nameТип Имя файла Направить вывод в указанный файл. Результирующий файл создаётся и его предыдущее содержимое перезаписывается, даже если при генерации выгрузки произошла ошибка.
Эта опция должна использоваться в Windows, чтобы предотвратить преобразование символов новой строки
\nв\r\nпоследовательности возврат каретки/новая строка. -
Формат командной строки --routinesТип Булево Значение по умолчанию TRUEВключить хранимые процедуры (процедуры и функции) для перечисляемых баз данных в выводе. Эта опция требует привилегии
SELECTдля таблицыmysql.proc.Вывод, полученный с помощью
--routines, содержит командыCREATE PROCEDUREиCREATE FUNCTIONдля создания процедур. Однако эти команды не включают такие атрибуты, как временные метки создания и изменения процедур, поэтому при повторном загрузке процедуры создаются с временными метками, равными времени загрузки.Если вам необходимо, чтобы процедуры создавались с исходными атрибутами временных меток, не используйте
--routines. Вместо этого выгрузите и перезагрузите содержимое таблицыmysql.procнапрямую, используя учётную запись MySQL с соответствующими привилегиями для базы данныхmysql.Эта опция включена по умолчанию; используйте
--skip-routines, чтобы отключить её. -
Формат командной строки --secure-authНе отправлять пароли на сервер в старом формате (до версии 4.1). Это предотвращает подключения, кроме серверов, использующих новый формат пароля.
Эта опция устарела; ожидается, что она будет удалена в будущих выпусках MySQL. Она всегда включена, и попытка её выключения (
--skip-secure-auth,--secure-auth=0) приводит к ошибке.
-
--server-public-key-path=file_nameФормат командной строки --server-public-key-path=file_nameВведено 5.7.23 Тип Имя файла Путь к файлу в формате PEM, содержащему копию открытого ключа клиента, необходимую серверу для обмена паролями на основе пары ключей RSA. Этот параметр применяется к клиентам, которые аутентифицируются с помощью плагина аутентификации
sha256_passwordилиcaching_sha2_password. Этот параметр игнорируется для учетных записей, которые не аутентифицируются с помощью одного из этих плагинов. Он также игнорируется, если обмен паролями на основе RSA не используется, как в случае, когда клиент подключается к серверу с использованием защищённого соединения.Если указан
--server-public-key-path=и он указывает на действительный файл открытого ключа, он имеет приоритет надfile_name--get-server-public-key.Для
sha256_passwordэтот параметр применяется только в том случае, если MySQL был скомпилирован с использованием OpenSSL.Сведения о плагинах
sha256_passwordиcaching_sha2_passwordсм. в Разделе 6.4.1.5, «SHA-256 Pluggable Authentication» и Разделе 6.4.1.4, «Caching SHA-2 Pluggable Authentication».Параметр
--server-public-key-pathбыл добавлен в MySQL 5.7.23. -
Формат командной строки --set-charsetЗапишите
SET NAMESв выходные данные.default_character_setЭтот параметр включён по умолчанию. Чтобы отключить его и подавить оператор
SET NAMES, используйте--skip-set-charset. -
--set-gtid-purged=valueФормат командной строки --set-gtid-purged=valueВведено 5.7.18 Тип Перечисление Значение по умолчанию AUTOДопустимые значения OFFONAUTOЭтот параметр позволяет управлять информацией о глобальных идентификаторах транзакций (GTID), записываемой в файл дампа, указав, нужно ли добавить оператор
SET @@GLOBAL.gtid_purgedв выходные данные. Этот параметр также может вызвать запись в выходные данные оператора, отключающего двоичное протоколирование во время перезагрузки файла дампа.Следующая таблица показывает допустимые значения параметров. Значение по умолчанию —
AUTO.Значение Описание OFFНе добавлять оператор SETв выходные данные.ONДобавить оператор SETв выходные данные. Если GTID не включены на сервере, произойдет ошибка.AUTOДобавить оператор SETв выходные данные, если GTID включены на сервере.Параметр
--set-gtid-purgedоказывает следующее воздействие на двоичное протоколирование при перезагрузке файла дампа:--set-gtid-purged=OFF:SET @@SESSION.SQL_LOG_BIN=0;не добавляется в выходные данные.--set-gtid-purged=ON:SET @@SESSION.SQL_LOG_BIN=0;добавляется в выходные данные.--set-gtid-purged=AUTO:SET @@SESSION.SQL_LOG_BIN=0;добавляется в выходные данные, если GTID включены на сервере, который вы резервируете (то есть, еслиAUTOравноON).
Этот параметр был добавлен в MySQL 5.7.18.
-
Формат командной строки --single-transactionЭтот параметр устанавливает режим изоляции транзакций на
REPEATABLE READи отправляет операторSTART TRANSACTIONSQL-запроса на сервер перед дампом данных. Он полезен только с транзакционными таблицами, такими какInnoDB, потому что тогда он сохраняет состояние базы данных в момент выдачиSTART TRANSACTIONбез блокировки каких-либо приложений.При использовании этого параметра следует помнить, что только таблицы
InnoDBсохраняются в согласованном состоянии. Например, любые таблицыMyISAMилиMEMORY, считанные при использовании этого параметра, могут все ещё измениться.Во время выполнения дампа с параметром
--single-transactionдля обеспечения валидного файла дампа (правильных данных таблиц и координат двоичного журнала) ни одно другое подключение не должно использовать следующие операторы:ALTER TABLE,CREATE TABLE,DROP TABLE,RENAME TABLE,TRUNCATE TABLE. Согласованный доступ не изолирован от этих операторов, поэтому их использование над таблицами, которые дампятся, может привести к тому, чтоSELECT, выполняемый mysqlpump для получения содержимого таблиц, вернёт некорректное содержимое или завершится ошибкой.Параметры
--add-locksи--single-transactionявляются взаимоисключающими.ПримечаниеДо MySQL 5.7.11 использование параметра
--single-transactionвзаимоисключалось с параллелизмом. Чтобы использовать--single-transaction, отключите параллелизм, установив--default-parallelismв 0 и не используя экземпляры--parallel-schemas:mysqlpump --single-transaction --default-parallelism=0
-
Формат командной строки --skip-definerТип Булево Значение по умолчанию FALSEИсключить
DEFINERиSQL SECURITYиз операторовCREATEдля представлений и хранимых программ. Файл дампа, при перезагрузке, создаст объекты, использующие значения по умолчаниюDEFINERиSQL SECURITY. См. Раздел 23.6, «Управление доступом к хранимым объектам». -
--skip-dump-rows,-dФормат командной строки --skip-dump-rowsТип Булево Значение по умолчанию FALSEНе сохранять строки таблиц.
-
--socket=,path-SpathФормат командной строки --socket={file_name|pipe_name}Тип Строка Для подключений к
localhost— используемый файл Unix-соккета или, в Windows, имя именованной пайплайны.В Windows этот параметр применяется только в том случае, если сервер был запущен с включённой переменной системы
named_pipeдля поддержки именованных подключений к пайплайнам. Кроме того, пользователь, производящий подключение, должен быть членом группы Windows, указанной переменной системыnamed_pipe_full_access_group.
-
--ssl*Параметры, начинающиеся с
--ssl, указывают, использовать ли шифрование при подключении к серверу, и где найти ключи и сертификаты SSL. См. Параметры командной строки для шифрованных подключений. -
Формат командной строки --tls-version=protocol_listВведено 5.7.10 Тип Строка Значение по умолчанию (≥ 5.7.28) TLSv1,TLSv1.1,TLSv1.2Значение по умолчанию (≤ 5.7.27) TLSv1,TLSv1.1,TLSv1.2(OpenSSL)TLSv1,TLSv1.1(yaSSL)Разрешенные протоколы TLS для шифрованных подключений. Значение представляет собой список одного или нескольких имён протоколов, разделённых запятыми. Протоколы, которые можно указать для этого параметра, зависят от библиотеки SSL, используемой при компиляции MySQL. Подробности см. в разделе 6.3.2, «Протоколы и шифры TLS шифрованного подключения».
Этот параметр был добавлен в MySQL 5.7.10.
-
Формат командной строки --triggersТип Булево Значение по умолчанию TRUEВключать триггеры для каждой дублируемой таблицы в выводе.
Этот параметр включен по умолчанию; используйте
--skip-triggersдля его отключения. -
Формат командной строки --tz-utcЭтот параметр позволяет
TIMESTAMPстолбцам дублироваться и перезагружаться между серверами в разных часовых поясах. mysqlpump устанавливает временную зону подключения в UTC и добавляетSET TIME_ZONE='+00:00'в файл дампа. Без этого параметра,TIMESTAMPстолбцы дублируются и перезагружаются в часовых поясах, локальных для исходного и целевого серверов, что может привести к изменению значений, если серверы находятся в разных часовых поясах.--tz-utcтакже защищает от изменений из-за перехода на летнее время.Этот параметр включен по умолчанию; используйте
--skip-tz-utcдля его отключения. -
--user=,user_name-uuser_nameФормат командной строки --user=user_nameТип Строка Имя пользователя учётной записи MySQL, используемой для подключения к серверу.
-
Формат командной строки --usersТип Булево Значение по умолчанию FALSEДублировать учетные записи пользователей в виде логических определений в форме
CREATE USERиGRANTинструкций.Определения пользователей хранятся в таблицах разрешений в базе данных
mysqlсистемной базе данных. По умолчанию mysqlpump не включает таблицы разрешений в дампы базы данныхmysql. Чтобы сохранить содержимое таблиц разрешений в виде логических определений, используйте параметр--usersи подавляйте все дампы базы данных:mysqlpump --exclude-databases=% --users
-
--version,-VФормат командной строки --versionОтобразить информацию о версии и выйти.
-
Формат командной строки --watch-progressТип Булево Значение по умолчанию TRUEПериодически отображать индикатор выполнения, предоставляющий информацию о завершённом и общем количестве таблиц, строк и других объектов.
Этот параметр включен по умолчанию; используйте
--skip-watch-progressдля его отключения.
Выборка объектов mysqlpump
mysqlpump имеет набор параметров включения и исключения, позволяющих фильтровать несколько типов объектов и гибко управлять тем, какие объекты дублировать:
--include-databasesи--exclude-databasesприменяются к базам данных и всем объектам внутри них.--include-tablesи--exclude-tablesприменяются к таблицам. Эти параметры также влияют на триггеры, связанные с таблицами, если не указаны параметры, специфичные для триггеров.--include-triggersи--exclude-triggersприменяются к триггерам.--include-routinesи--exclude-routinesприменяются к хранимым процедурам и функциям. Если параметр процедуры совпадает с именем хранимой процедуры, он также совпадает с именем хранимой функции с тем же именем.--include-eventsи--exclude-eventsприменяются к событиям планировщика событий.--include-usersи--exclude-usersприменяются к учетным записям пользователей.
Любой параметр включения или исключения можно задать несколько раз. Эффект является аддитивным. Порядок этих параметров не имеет значения.
Значение каждого параметра включения и исключения — это список имён соответствующего типа объектов, разделённых запятыми. Например:
--exclude-databases=test,world
--include-tables=customer,invoice
В именах объектов допускаются символы подстановки:
%соответствует любой последовательности нуля или более символов._соответствует любому одиночному символу.
Например, --include-tables=t%,__tmp соответствует всем именам таблиц, начинающимся с t, и всем именам таблиц длиной в пять символов, заканчивающимся на tmp.
Для пользователей имя, указанное без части хоста, интерпретируется с подразумеваемым хостом %. Например, u1 и u1@% эквивалентны. Это то же самое эквивалентность, которое применяется в MySQL в целом (см. раздел 6.2.4, «Указание имён учётных записей»).
Параметры включения и исключения взаимодействуют следующим образом:
По умолчанию, без параметров включения или исключения, mysqlpump дублирует все базы данных (с некоторыми исключениями, указанными в ограничениях mysqlpump).
Если заданы параметры включения в отсутствие параметров исключения, дублируются только объекты, указанные как включённые.
Если заданы параметры исключения в отсутствие параметров включения, дублируются все объекты, кроме тех, которые указаны как исключённые.
Если заданы параметры включения и исключения, не дублируются все объекты, указанные как исключённые и не указанные как включённые. Все остальные объекты дублируются.
Если требуется дамп нескольких баз данных, можно задать имена таблиц, триггеров и процедур в определенной базе данных, указав имя базы данных перед именем объекта. Следующая команда создает дампы баз данных db1 и db2, но исключает таблицы db1.t1 и db2.t2:
mysqlpump --include-databases=db1,db2 --exclude-tables=db1.t1,db2.t2
Следующие параметры предлагают альтернативные способы указания баз данных для дампа:
-
Параметр
--all-databasesсоздает дампы всех баз данных (с определенными исключениями, указанными в mysqlpump Restrictions). Он эквивалентен отсутствию каких-либо параметров объектов (по умолчанию действие mysqlpump заключается в создании дампов всего).--include-databases=%похож на--all-databases, но выбирает все базы данных для дампа, даже те, которые являются исключениями для--all-databases. Параметр
--databasesзаставляет mysqlpump рассматривать все аргументы имени как имена баз данных для дампа. Он эквивалентен параметру--include-databases, который указывает те же базы данных.
mysqlpump Параллельная обработка
mysqlpump может использовать параллелизм для достижения одновременной обработки. Можно выбрать параллелизм между базами данных (для создания дампов нескольких баз данных одновременно) и внутри баз данных (для создания дампов нескольких объектов из данной базы данных одновременно).
По умолчанию mysqlpump настраивает одну очередь с двумя потоками. Можно создать дополнительные очереди и контролировать количество потоков, назначенных каждой из них, включая очередь по умолчанию:
-
--default-parallelism=определяет количество потоков по умолчанию, используемых для каждой очереди. При отсутствии этого параметра,NNравно 2.Очередь по умолчанию всегда использует количество потоков по умолчанию. Дополнительные очереди используют количество потоков по умолчанию, если не указано иное.
-
--parallel-schemas=[настраивает очередь обработки для создания дампов баз данных, перечисленных вN:]db_listdb_list, и необязательно указывает, сколько потоков используется в очереди.db_list— это список имен баз данных, разделенных запятыми. Если аргумент параметра начинается с, очередь используетN:Nпотоков. В противном случае, количество потоков очереди определяется параметром--default-parallelism.Несколько экземпляров параметра
--parallel-schemasсоздают несколько очередей.Имена в списке баз данных могут содержать те же символы-подстановок
%и_, поддерживаемые для фильтрации параметров (см. mysqlpump Object Selection).
mysqlpump использует очередь по умолчанию для обработки баз данных, не указанных явно с помощью параметра --parallel-schemas, и для создания дампов пользовательских определений, если параметры команды их выбирают.
В общем случае, при использовании нескольких очередей mysqlpump использует параллелизм между наборами баз данных, обрабатываемыми очередями, для одновременного создания дампов нескольких баз данных. Для очереди, использующей несколько потоков, mysqlpump использует параллелизм внутри баз данных для одновременного создания дампов нескольких объектов из данной базы данных. Исключения могут возникать; например, mysqlpump может блокировать очереди, пока получает от сервера списки объектов в базах данных.
При включенном параллелизме выходные данные из разных баз данных могут быть перемешаны. Например, операторы INSERT из нескольких таблиц, создаваемых параллельно, могут быть перемешаны; операторы не записываются в определенном порядке. Это не влияет на перезагрузку, поскольку операторы вывода квалифицируют имена объектов с именами баз данных или предваряются операторами USE, как требуется.
Зерно параллелизма — один объект базы данных. Например, отдельную таблицу нельзя создавать в дампе параллельно с использованием нескольких потоков.
Примеры:
mysqlpump --parallel-schemas=db1,db2 --parallel-schemas=db3
mysqlpump создает очередь для обработки db1 и db2, другую очередь для обработки db3 и очередь по умолчанию для обработки всех других баз данных. Все очереди используют два потока.
mysqlpump --parallel-schemas=db1,db2 --parallel-schemas=db3
--default-parallelism=4
Это то же самое, что и предыдущий пример, за исключением того, что все очереди используют четыре потока.
mysqlpump --parallel-schemas=5:db1,db2 --parallel-schemas=3:db3
Очередь для db1 и db2 использует пять потоков, очередь для db3 использует три потока, а очередь по умолчанию использует два потока по умолчанию.
В качестве специального случая, при использовании --default-parallelism=0 и отсутствии параметра --parallel-schemas, mysqlpump выполняется как однопотоковый процесс и не создает очередей.
До MySQL 5.7.11 использование параметра --single-transaction несовместимо с параллелизмом. Чтобы использовать --single-transaction, отключите параллелизм, установив --default-parallelism в 0 и не используя параметр --parallel-schemas:
mysqlpump --single-transaction --default-parallelism=0
mysqlpump Ограничения
mysqlpump по умолчанию не создает дампы схемы INFORMATION_SCHEMA, performance_schema, ndbinfo или sys. Чтобы создать дампы этих схем, укажите их явно в командной строке. Также вы можете указать их с помощью параметра --databases или --include-databases.
mysqlpump не создает дампы операторов InnoDB CREATE
TABLESPACE.
mysqlpump создает дампы учетных записей пользователей в логической форме, используя операторы CREATE USER и GRANT (например, когда вы используете параметр --include-users или --users). По этой причине дампы системной базы данных mysql по умолчанию не включают таблицы разрешений, содержащие определения пользователей: user, db, tables_priv, columns_priv, procs_priv или proxies_priv. Чтобы создать дамп любых таблиц разрешений, укажите базу данных mysql, а затем имена таблиц:
mysqlpump mysql user db ...
© 2025 Oracle
Licensed under the GPLv2 License.