6.5.4 mysqldump — Программа резервного копирования базы данных
Утилита клиента mysqldump выполняет создание набора SQL-команд, которые можно выполнить для воспроизведения исходных определений объектов базы данных и данных таблиц. Она выгружает одну или несколько баз данных MySQL для резервного копирования или переноса на другой сервер SQL. Команда mysqldump также может генерировать выходные данные в формате CSV, других разделительных текстов или XML.
Рассмотрите использование mysqlbackup, которая предоставляет параллельную выгрузку с несколькими потоками, сжатие файлов, отображение информации о прогрессе, а также облачные функции, такие как передача данных хранилища Oracle Cloud Infrastructure Object Storage, совместимость и модификации MySQL HeatWave Service. Выгрузки можно легко импортировать в экземпляр MySQL Server или базу данных MySQL HeatWave Service с помощью . Инструкции по установке MySQL Shell можно найти .
Для выгружаемых таблиц SELECT привилегия, SHOW VIEW для выгружаемых представлений, TRIGGER для выгружаемых триггеров, LOCK TABLES если опция --single-transaction не используется, PROCESS если опция --no-tablespaces не используется, и RELOAD или FLUSH_TABLES привилегия с --single-transaction если оба gtid_mode=ON и gtid_purged=ON|AUTO. Некоторые параметры могут потребовать другие привилегии, как указано в описаниях параметров.
Для перезагрузки файла выгрузки у вас должны быть привилегии, необходимые для выполнения содержащихся в нём команд, такие как соответствующие CREATE привилегии для объектов, созданных этими командами.
Вывод mysqldump может включать ALTER DATABASE команды, изменяющие сортировку базы данных. Эти команды могут использоваться при выгрузке хранимых программ для сохранения кодировок символов. Для перезагрузки файла выгрузки, содержащего такие команды, требуется привилегия ALTER для соответствующей базы данных.
Выгрузка, выполненная с помощью PowerShell в Windows с перенаправлением вывода, создаёт файл с кодировкой UTF-16:
mysqldump [options] > dump.sql
Однако UTF-16 не допускается в качестве кодировки соединения (см. Недопустимые кодировки символов клиента), поэтому файл выгрузки не может быть загружен корректно. Чтобы обойти эту проблему, используйте опцию --result-file, которая создаёт вывод в формате ASCII:
mysqldump [options] --result-file=dump.sql
Не рекомендуется загружать файл выгрузки, когда на сервере включены GTIDs (gtid_mode=ON), если ваш файл выгрузки содержит системные таблицы. mysqldump выдает команды DML для системных таблиц, которые используют не транзакционный движок хранения MyISAM, и это сочетание не допускается при включённых GTIDs.
Учёт производительности и масштабируемости
Преимущества mysqldump включают удобство и гибкость просмотра или даже редактирования вывода перед восстановлением. Вы можете клонировать базы данных для разработки и работы DBA или создавать незначительные вариации существующей базы данных для тестирования. Он не предназначен для быстрого или масштабируемого решения для резервного копирования больших объёмов данных. При больших размерах данных, даже если шаг резервного копирования занимает разумное время, восстановление данных может быть очень медленным, так как переигрывание SQL-команд включает ввод-вывод на диск для вставки, создания индексов и т.д.
Для резервного копирования и восстановления больших масштабов более подходящим является резервное копирование файлов данных в их первоначальном формате, чтобы они могли быть восстановлены быстро.
Если ваши таблицы в основном являются таблицами InnoDB или если у вас есть смесь таблиц InnoDB и MyISAM, рассмотрите использование mysqlbackup, которое входит в состав MySQL Enterprise. Этот инструмент обеспечивает высокую производительность для InnoDB резервного копирования с минимальными нарушениями; он также может резервировать таблицы из MyISAM и других движков хранения; он также предоставляет ряд удобных параметров для адаптации к различным сценариям резервного копирования. См. Раздел 32.1, «Обзор резервного копирования MySQL Enterprise».
mysqldump может получать и выгружать содержимое таблиц строка за строкой или получать всё содержимое из таблицы и буферизовать его в памяти перед выгрузкой. Буферизация в памяти может быть проблемой при выгрузке больших таблиц. Для выгрузки таблиц строка за строкой используйте опцию --quick (или --opt, которая включает --quick). Опция --opt (и, следовательно, --quick) включена по умолчанию, поэтому для включения буферизации в памяти используйте --skip-quick.
Если вы используете последнюю версию mysqldump для создания выгрузки для загрузки в очень старую версию MySQL сервера, используйте опцию --skip-opt вместо опций --opt или --extended-insert.
Дополнительную информацию о mysqldump см. в Разделе 9.4, «Использование mysqldump для резервного копирования».
Синтаксис вызова
В целом есть три способа использования mysqldump — для выгрузки набора одной или нескольких таблиц, набора одной или нескольких полных баз данных или всего сервера MySQL, как показано ниже:
mysqldump [options] db_name [tbl_name ...]
mysqldump [options] --databases db_name ...
mysqldump [options] --all-databases
Для выгрузки целых баз данных не указывайте таблицы после db_name или используйте опции --databases или --all-databases.
Чтобы увидеть список параметров, поддерживаемых вашей версией mysqldump, введите команду mysqldump --help.
Синтаксис параметров - Алфавитный список
mysqldump поддерживает следующие параметры, которые можно указать в командной строке или в группах параметров [mysqldump] и [client] файла параметров. Сведения о файлах параметров, используемых программами MySQL, см. в Разделе 6.2.2.2, “Использование файлов параметров”.
Таблица 6.13 Параметры mysqldump
| Имя параметра | Описание |
|---|
| --add-drop-database | Добавить оператор DROP DATABASE перед каждым оператором CREATE DATABASE |
| --add-drop-table | Добавить оператор DROP TABLE перед каждым оператором CREATE TABLE |
| --add-drop-trigger | Добавить оператор DROP TRIGGER перед каждым оператором CREATE TRIGGER |
| --add-locks | Окружить каждый дамп таблицы операторами LOCK TABLES и UNLOCK TABLES |
| --all-databases | Выгрузить все таблицы из всех баз данных |
| --allow-keywords | Разрешить создание имён столбцов, которые являются ключевыми словами |
| --apply-replica-statements | Включить STOP REPLICA перед оператором CHANGE REPLICATION SOURCE TO и START REPLICA в конце вывода |
| --apply-slave-statements | Включить STOP SLAVE перед оператором CHANGE MASTER и START SLAVE в конце вывода |
| --bind-address | Использовать указанный сетевой интерфейс для подключения к MySQL Server |
| --character-sets-dir | Директория, где установлены наборы символов |
| --column-statistics | Записать операторы ANALYZE TABLE для генерации статистических гистограмм |
| --comments | Добавить комментарии к файлу дампа |
| --compact | Создать более компактный вывод |
| --compatible | Создать вывод, более совместимый с другими системами баз данных или более старыми серверами MySQL |
| --complete-insert | Использовать полные операторы INSERT, которые включают имена столбцов |
| --compress | Сжать всю информацию, передаваемую между клиентом и сервером |
| --compression-algorithms | Разрешенные алгоритмы сжатия для подключений к серверу |
| --create-options | Включить все параметры таблиц MySQL в операторах CREATE TABLE |
| --databases | Интерпретировать все аргументы имен как имена баз данных |
| --debug | Записать отладочный журнал |
| --debug-check | Вывести отладочную информацию при завершении программы |
| --debug-info | Вывести отладочную информацию, статистику памяти и ЦП при завершении программы |
| --default-auth | Плагин аутентификации для использования |
| --default-character-set | Указать набор символов по умолчанию |
| --defaults-extra-file | Прочитать указанный файл параметров дополнительно к обычным файлам параметров |
| --defaults-file | Прочитать только указанный файл параметров |
| --defaults-group-suffix | Значение суффикса группы параметров |
| --delete-master-logs | На сервере репликации-источника, удалить двоичные журналы после выполнения операции дампа |
| --delete-source-logs | На сервере репликации-источника, удалить двоичные журналы после выполнения операции дампа |
| --disable-keys | Для каждой таблицы, окружать операторы INSERT операторами для отключения и включения ключей |
| --dump-date | Включить дату дампа как комментарий "Dump completed on", если задан --comments |
| --dump-replica | Включить оператор CHANGE REPLICATION SOURCE TO, который перечисляет координаты двоичного журнала источника репликации |
| --dump-slave | Включить оператор CHANGE MASTER, который перечисляет координаты двоичного журнала источника репликации |
| --enable-cleartext-plugin | Включить плагин аутентификации cleartext |
| --events | Выгрузить события из выгруженных баз данных |
| --extended-insert | Использовать синтаксис INSERT для нескольких строк |
| --fields-enclosed-by | Этот параметр используется с опцией --tab и имеет то же значение, что и соответствующая фраза для LOAD DATA |
| --fields-escaped-by | Этот параметр используется с опцией --tab и имеет то же значение, что и соответствующая фраза для LOAD DATA |
| --fields-optionally-enclosed-by | Этот параметр используется с опцией --tab и имеет то же значение, что и соответствующая фраза для LOAD DATA |
| --fields-terminated-by | Этот параметр используется с опцией --tab и имеет то же значение, что и соответствующая фраза для LOAD DATA |
| --flush-logs | Очистить файлы журналов MySQL-сервера перед началом дампа |
| --flush-privileges | Выдать оператор FLUSH PRIVILEGES после выгрузки базы данных mysql |
| --force | Продолжить даже если во время выгрузки таблицы произойдёт ошибка SQL |
| --get-server-public-key | Запрос RSA открытого ключа у сервера |
| --help | Показать сообщение справки и завершить |
| --hex-blob | Выгрузить бинарные столбцы в шестнадцатеричном формате |
| --host | Хост, на котором находится MySQL-сервер |
| --ignore-error | Игнорировать указанные ошибки |
| --ignore-table | Не выгружать указанную таблицу |
| --ignore-views | Пропустить выгрузку представлений таблиц |
| --include-master-host-port | Включить параметры MASTER_HOST/MASTER_PORT в операторе CHANGE MASTER, сгенерированном с помощью --dump-slave |
| --include-source-host-port | Включить параметры SOURCE_HOST и SOURCE_PORT в операторе CHANGE REPLICATION SOURCE TO, сгенерированном с помощью --dump-replica |
| --init-command | Единственное SQL-оператор для выполнения после подключения или повторного подключения к серверу MySQL; сбрасывает ранее заданные команды |
| --init-command-add | Добавить дополнительный SQL-оператор для выполнения после подключения или повторного подключения к MySQL-серверу |
| --insert-ignore | Записать INSERT IGNORE вместо операторов INSERT |
| --lines-terminated-by | Этот параметр используется с опцией --tab и имеет то же значение, что и соответствующая фраза для LOAD DATA |
| --lock-all-tables | Заблокировать все таблицы во всех базах данных |
| --lock-tables | Заблокировать все таблицы перед их выгрузкой |
| --log-error | Добавить предупреждения и ошибки в указанный файл |
| --login-path | Прочитать параметры пути входа из .mylogin.cnf |
| --master-data | Записать имя и позицию файла двоичного журнала в вывод |
| --max-allowed-packet | Максимальная длина пакета для отправки или получения от сервера |
| --mysqld-long-query-time | Значение сессии для порога времени медленных запросов |
| --net-buffer-length | Размер буфера для TCP/IP и сокетного взаимодействия |
| --network-timeout | Увеличение сетевых таймаутов для разрешения более крупных дампов таблиц |
| --no-autocommit | Окружить операторы INSERT для каждой выгруженной таблицы операторами SET autocommit = 0 и COMMIT |
| --no-create-db | Не записывать операторы CREATE DATABASE |
| --no-create-info | Не записывать операторы CREATE TABLE, которые повторно создают каждую таблицу, которую нужно скопировать |
| --no-data | Не копировать содержимое таблиц |
| --no-defaults | Не читать файлы опций |
| --no-login-paths | Не читать пути входа из файла пути входа |
| --no-set-names | То же самое, что и --skip-set-charset |
| --no-tablespaces | Не записывать операторы CREATE LOGFILE GROUP или CREATE TABLESPACE в выходные данные |
| --opt | Сокращение для --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset |
| --order-by-primary | Копировать строки каждой таблицы, отсортированные по первичному ключу или по первому уникальному индексу |
| --output-as-version | Определяет терминологию репликации и событий, используемую в копиях; для совместимости со старыми версиями |
| --password | Пароль для подключения к серверу |
| --password1 | Первый пароль многофакторной аутентификации для подключения к серверу |
| --password2 | Второй пароль многофакторной аутентификации для подключения к серверу |
| --password3 | Третий пароль многофакторной аутентификации для подключения к серверу |
| --pipe | Подключение к серверу с помощью именованной трубы (только Windows) |
| --plugin-authentication-kerberos-client-mode | Разрешить плагины аутентификации GSSAPI через библиотеку MIT Kerberos на Windows |
| --plugin-dir | Директория, в которой установлены плагины |
| --port | Номер порта TCP/IP для подключения |
| --print-defaults | Вывести значения по умолчанию |
| --protocol | Протокол передачи, который нужно использовать |
| --quick | Получать строки для таблицы с сервера по одной строке за раз |
| --quote-names | Заключать идентификаторы в обратные кавычки |
| --replace | Записывать операторы REPLACE вместо операторов INSERT |
| --result-file | Направить выходные данные в указанный файл |
| --routines | Копировать хранимые процедуры и функции из копируемых баз данных |
| --server-public-key-path | Путь к файлу, содержащему открытый ключ RSA |
| --set-charset | Добавить SET NAMES default_character_set в выходные данные |
| --set-gtid-purged | Добавить SET @@GLOBAL.GTID_PURGED в выходные данные |
| --shared-memory-base-name | Имя разделяемой памяти для подключений с разделяемой памятью (только Windows) |
| --show-create-skip-secondary-engine | Исключить предложение SECONDARY ENGINE из операторов CREATE TABLE |
| --single-transaction | Выполнить оператор BEGIN SQL перед копированием данных с сервера |
| --skip-add-drop-table | Не добавлять оператор DROP TABLE перед каждым оператором CREATE TABLE |
| --skip-add-locks | Не добавлять блокировки |
| --skip-comments | Не добавлять комментарии в файл выгрузки |
| --skip-compact | Не создавать более компактный вывод |
| --skip-disable-keys | Не отключать ключи |
| --skip-extended-insert | Отключить расширенный ввод |
| --skip-generated-invisible-primary-key | Не включать сгенерированные невидимые первичные ключи в файл выгрузки |
| --skip-opt | Отключить параметры, установленные с помощью --opt |
| --skip-quick | Не получать строки для таблицы с сервера по одной строке за раз |
| --skip-quote-names | Не заключать идентификаторы в кавычки |
| --skip-set-charset | Не записывать оператор SET NAMES |
| --skip-triggers | Не копировать триггеры |
| --skip-tz-utc | Отключить tz-utc |
| --socket | Файл Unix-сокет или именованная труба Windows для использования |
| --source-data | Записать имя и позицию файла журнала двоичных логов в вывод |
| --ssl-ca | Файл, содержащий список доверенных центров сертификации SSL |
| --ssl-capath | Директория, содержащая файлы сертификатов доверенных центров сертификации SSL |
| --ssl-cert | Файл, содержащий X.509-сертификат |
| --ssl-cipher | Разрешенные шифры для шифрования соединения |
| --ssl-crl | Файл, содержащий списки отзыва сертификатов |
| --ssl-crlpath | Директория, содержащая файлы списков отзыва сертификатов |
| --ssl-fips-mode | Включить режим FIPS на стороне клиента |
| --ssl-key | Файл, содержащий X.509-ключ |
| --ssl-mode | Желаемое состояние безопасности соединения с сервером |
| --ssl-session-data | Файл, содержащий данные сеанса SSL |
| --ssl-session-data-continue-on-failed-reuse | Подключаться ли, если переиспользование сеанса не удаётся |
| --tab | Создавать файлы данных с разделителем табуляция |
| --tables | Переопределить --databases или -B опцию |
| --tls-ciphersuites | Разрешенные TLSv1.3 ciphersuites для шифрованных соединений |
| --tls-sni-servername | Имя сервера, предоставленное клиентом |
| --tls-version | Разрешенные протоколы TLS для шифрованных соединений |
| --triggers | Копировать триггеры для каждой копируемой таблицы |
| --tz-utc | Добавить SET TIME_ZONE='+00:00' в файл выгрузки |
| --user | Имя пользователя MySQL для подключения к серверу |
| --verbose | Режим подробных сообщений |
| --version | Отобразить информацию о версии и выйти |
| --where | Копировать только строки, выбранные заданным условием WHERE |
| --xml | Создать выходные данные в формате XML |
| --zstd-compression-level | Уровень сжатия для подключений к серверу, которые используют сжатие zstd |
Параметры подключения
Команда mysqldump подключается к серверу MySQL для извлечения информации. Следующие параметры определяют, как подключиться к серверу MySQL, как на одном компьютере, так и на удалённой системе.
-
Формат командной строки --bind-address=ip_addressНа компьютере с несколькими сетевыми интерфейсами используйте этот параметр, чтобы выбрать интерфейс для подключения к серверу MySQL.
-
--compress,-CФормат командной строки --compress[={OFF|ON}]Устаревший Да Тип Булево Значение по умолчанию OFFСжимать всю информацию, передаваемую между клиентом и сервером, если это возможно. См. Раздел 6.2.8, «Управление сжатием соединения».
Этот параметр устарел. Ожидается, что он будет удален в будущей версии MySQL. См. Настройка устаревшего сжатия соединения.
-
--compression-algorithms=valueФормат командной строки --compression-algorithms=valueТип Множество Значение по умолчанию uncompressedДопустимые значения zlibzstduncompressedРазрешенные алгоритмы сжатия для подключения к серверу. Доступные алгоритмы такие же, как для системной переменной
protocol_compression_algorithms. Значение по умолчанию —uncompressed.Для получения дополнительной информации см. Раздел 6.2.8, «Управление сжатием соединения».
-
Формат командной строки --default-auth=pluginТип Строка Подсказка о том, какой плагин аутентификации клиента использовать. См. Раздел 8.2.17, «Подключаемые модули аутентификации».
-
Формат командной строки --enable-cleartext-pluginТип Булево Значение по умолчанию FALSEВключить плагин аутентификации
mysql_clear_passwordс открытым текстом. (См. Раздел 8.4.1.4, «Клиентская аутентификация с открытым текстом».) -
Формат командной строки --get-server-public-keyТип Булево Запросить у сервера открытый ключ, необходимый для обмена паролями на основе пары ключей RSA. Этот параметр относится к клиентам, которые аутентифицируются с помощью плагина аутентификации
caching_sha2_password. Для этого плагина сервер не отправляет открытый ключ, если его не запросить. Этот параметр игнорируется для учетных записей, которые не проходят аутентификацию с этим плагином. Он также игнорируется, если обмен паролями на основе RSA не используется, как в случае, когда клиент подключается к серверу с помощью защищенного соединения.Если задан
--server-public-key-path=и указывает допустимый файл с открытым ключом, он имеет приоритет надfile_name--get-server-public-key.Сведения о плагине
caching_sha2_passwordсм. в Разделе 8.4.1.2, «Подключаемый модуль аутентификации с кэшированием SHA-2». -
--host=,host_name-hhost_nameФормат командной строки --hostВыгрузить данные с сервера MySQL на указанном хосте. Хост по умолчанию —
localhost. -
Формат командной строки --login-path=nameТип Строка Считывать параметры из указанного пути к файлу параметров в файле параметров входа
.mylogin.cnf. “Путь к файлу входа” — это группа параметров, содержащих параметры, которые указывают, к какому серверу MySQL подключиться и под какой учетной записью аутентифицироваться. Для создания или изменения файла пути к файлу входа используйте утилиту mysql_config_editor. См. Раздел 6.6.7, «mysql_config_editor — Утилита конфигурации MySQL».Дополнительную информацию об этом и других параметрах файла см. в Разделе 6.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».
-
Формат командной строки --no-login-pathsПропускает чтение параметров из файла пути входа.
См.
--login-pathдля получения связанной информации.Дополнительную информацию об этом и других параметрах файла см. в Разделе 6.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».
-
--password[=,password]-p[password]Формат командной строки --password[=password]Тип Строка Пароль учетной записи MySQL, используемой для подключения к серверу. Значение пароля необязательно. Если он не указан, mysqldump запросит его. Если указан, между
--password=или-pи последующим паролем не должно быть пробелов. Если параметр пароля не указан, по умолчанию передается пустой пароль.Указание пароля в командной строке следует считать небезопасным. Чтобы избежать ввода пароля в командной строке, используйте файл параметров. См. Раздел 8.1.2.1, «Руководство для конечных пользователей по безопасности паролей».
Чтобы явно указать отсутствие пароля и то, что mysqldump не должен его запрашивать, используйте параметр
--skip-password.
-
Пароль для многофакторной аутентификации фактора 1 учётной записи MySQL, используемой для подключения к серверу. Значение пароля необязательно. Если не указано, mysqldump запросит его. Если указано, между
--password1=и последующим паролем не должно быть пробелов. Если опция пароля не указана, по умолчанию пароль не передаётся.Указание пароля в командной строке считается небезопасным. Чтобы избежать ввода пароля в командной строке, используйте файл настроек. См. Раздел 8.1.2.1, «Рекомендации для пользователей по безопасности паролей».
Чтобы явно указать, что пароль отсутствует и что mysqldump не должен запрашивать его, используйте опцию
--skip-password1.--password1и--passwordявляются синонимами, также как--skip-password1и--skip-password. -
Пароль для многофакторной аутентификации фактора 2 учётной записи MySQL, используемой для подключения к серверу. Семантика этой опции аналогична семантике
--password1; см. описание этой опции для получения подробностей. -
Пароль для многофакторной аутентификации фактора 3 учётной записи MySQL, используемой для подключения к серверу. Семантика этой опции аналогична семантике
--password1; см. описание этой опции для получения подробностей. -
--pipe,-WФормат командной строки --pipeТип Строка В Windows подключайтесь к серверу с помощью именованной трубы. Эта опция применяется только в том случае, если сервер был запущен с включенной системной переменной
named_pipeдля поддержки подключений через именованные трубы. Кроме того, пользователь, осуществляющий подключение, должен быть членом группы Windows, указанной в системной переменнойnamed_pipe_full_access_group. -
--plugin-authentication-kerberos-client-mode=valueФормат командной строки --plugin-authentication-kerberos-client-modeТип Строка Значение по умолчанию SSPIДопустимые значения GSSAPIНа Windows плагин аутентификации
authentication_kerberos_clientподдерживает эту опцию плагина. Он предоставляет два возможных значения, которые пользователь клиента может установить во время выполнения:SSPIиGSSAPI.Значение по умолчанию для опции плагина со стороны клиента использует интерфейс поставщика безопасности Windows (SSPI), который способен получать учётные данные из кэша Windows в памяти. В качестве альтернативы пользователь клиента может выбрать режим, поддерживающий обобщённый интерфейс приложения для служб безопасности (GSSAPI) через библиотеку MIT Kerberos в Windows. GSSAPI способен получать кэшированные учётные данные, ранее сгенерированные с помощью команды kinit.
Дополнительную информацию см. в разделе Команды для клиентов Windows в режиме GSSAPI.
-
Формат командной строки --plugin-dir=dir_nameТип Имя каталога Каталог, в котором следует искать плагины. Укажите эту опцию, если опция
--default-authиспользуется для указания плагина аутентификации, но mysqldump его не находит. См. Раздел 8.2.17, «Подключаемые модули аутентификации». -
--port=,port_num-Pport_numФормат командной строки --port=port_numТип Числовое значение Значение по умолчанию 3306Для подключений TCP/IP, номер порта для использования.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}Формат командной строки --protocol=typeТип Строка Значение по умолчанию [see text]Допустимые значения TCPSOCKETPIPEMEMORYТранспортный протокол для подключения к серверу. Это полезно, когда другие параметры подключения приводят к использованию протокола, отличного от желаемого. Подробности о допустимых значениях см. в Разделе 6.2.7, «Протоколы транспорта соединений».
-
--server-public-key-path=file_nameФормат командной строки --server-public-key-path=file_nameТип Имя файла Имя файла в формате 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см. в Разделе 8.4.1.3, «Подключаемый модуль аутентификации SHA-256» и Разделе 8.4.1.2, «Кэширование подключаемого модуля аутентификации SHA-2». -
--socket=,path-SpathФормат командной строки --socket={file_name|pipe_name}Тип Строка Для подключений к
localhost, используемый файл Unix-соккета или, в Windows, имя именованной трубы.В Windows эта опция применяется только в том случае, если сервер был запущен с включенной системной переменной
named_pipeдля поддержки подключений через именованные трубы. Кроме того, пользователь, осуществляющий подключение, должен быть членом группы Windows, указанной в системной переменнойnamed_pipe_full_access_group. -
--ssl*Опции, начинающиеся с
--ssl, указывают, следует ли подключаться к серверу с шифрованием, и указывают, где найти ключи и сертификаты SSL. См. Опции командной строки для защищённых подключений.
-
--ssl-fips-mode={OFF|ON|STRICT}Формат командной строки --ssl-fips-mode={OFF|ON|STRICT}Устарело Да Тип Перечисление Значение по умолчанию OFFДопустимые значения OFFONSTRICTУправляет включением режима FIPS со стороны клиента. Опция
--ssl-fips-modeотличается от других опций--ssl-тем, что она не используется для установления шифрованных соединений, а скорее для определения допустимых криптографических операций. См. Раздел 8.8, «Поддержка FIPS».xxxДопустимые значения для
--ssl-fips-mode:OFF: Отключить режим FIPS.ON: Включить режим FIPS.STRICT: Включить режим “строгий” FIPS.
ПримечаниеЕсли модуль OpenSSL FIPS Object Module недоступен, единственным допустимым значением для
--ssl-fips-modeявляетсяOFF. В этом случае установка--ssl-fips-modeвONилиSTRICTзаставит клиента вывести предупреждение при запуске и работать в режиме, не поддерживающем FIPS.Эта опция устарела. Ожидайте её удаления в будущих версиях MySQL.
-
--tls-ciphersuites=ciphersuite_listФормат командной строки --tls-ciphersuites=ciphersuite_listТип Строка Допустимые наборы шифров для шифрованных соединений, использующих TLSv1.3. Значение представляет собой список одного или нескольких названий наборов шифров, разделённых двоеточием. Наборы шифров, которые могут быть указаны для этой опции, зависят от используемой библиотеки SSL при компиляции MySQL. Подробности см. в Разделе 8.3.2, «Шифрованные соединения Протоколы и шифры TLS».
-
--tls-sni-servername=server_nameФормат командной строки --tls-sni-servername=server_nameТип Строка При указании имя передаётся в библиотеку C API
libmysqlclientс использованием опцииMYSQL_OPT_TLS_SNI_SERVERNAME. Имя сервера не чувствительно к регистру. Чтобы увидеть имя сервера, указанное клиентом для текущей сессии, если таковое есть, проверьте переменную состоянияTls_sni_server_name.Server Name Indication (SNI) — это расширение протокола TLS (OpenSSL должен быть скомпилирован с расширениями TLS для работы этой опции). Реализация SNI в MySQL представляет только клиентскую сторону.
-
Формат командной строки --tls-version=protocol_listТип Строка Значение по умолчанию TLSv1,TLSv1.1,TLSv1.2,TLSv1.3(OpenSSL 1.1.1 или выше)TLSv1,TLSv1.1,TLSv1.2(в противном случае)Допустимые протоколы TLS для шифрованных соединений. Значение представляет собой список одного или нескольких имён протоколов, разделённых запятыми. Протоколы, которые можно указать для этой опции, зависят от используемой библиотеки SSL при компиляции MySQL. Подробности см. в Разделе 8.3.2, «Шифрованные соединения Протоколы и шифры TLS».
-
--user=,user_name-uuser_nameФормат командной строки --user=user_nameТип Строка Имя пользователя учётной записи MySQL, используемой для подключения к серверу.
Если вы используете плагин
Rewriter, вы должны предоставить этому пользователю привилегиюSKIP_QUERY_REWRITE. -
--zstd-compression-level=levelФормат командной строки --zstd-compression-level=#Тип Целое число Уровень сжатия для соединений с сервером, использующих алгоритм сжатия
zstd. Допустимые уровни — от 1 до 22, причём большие значения означают более высокий уровень сжатия. По умолчанию уровень сжатияzstdравен 3. Настройка уровня сжатия не влияет на подключения, не использующие сжатиеzstd.Для получения дополнительной информации см. Раздел 6.2.8, «Управление сжатием соединений».
Опции файла опций
Эти опции используются для управления файлами опций, которые нужно читать.
-
--defaults-extra-file=file_nameФормат командной строки --defaults-extra-file=file_nameТип Имя файла Читает этот файл опций после глобального файла опций, но (в Unix) перед файлом опций пользователя. Если файл не существует или недоступен, возникает ошибка. Если
file_nameне является абсолютным именем пути, оно интерпретируется относительно текущей директории.Дополнительную информацию об этой и других опциях файла опций см. в Разделе 6.2.2.3, «Опции командной строки, влияющие на обработку файлов опций».
-
Формат командной строки --defaults-file=file_nameТип Имя файла Использует только указанный файл опций. Если файл не существует или недоступен, возникает ошибка. Если
file_nameне является абсолютным именем пути, оно интерпретируется относительно текущей директории.Исключение: Даже с
--defaults-file, клиентские программы читают.mylogin.cnf.Дополнительную информацию об этой и других опциях файла опций см. в Разделе 6.2.2.3, «Опции командной строки, влияющие на обработку файлов опций».
-
Формат командной строки --defaults-group-suffix=strТип Строка Читает не только обычные группы опций, но и группы с обычными именами и суффиксом
str. Например, mysqldump обычно читает группы[client]и[mysqldump]. Если эта опция задана как--defaults-group-suffix=_other, mysqldump также читает группы[client_other]и[mysqldump_other].Дополнительную информацию об этой и других опциях файла опций см. в Разделе 6.2.2.3, «Опции командной строки, влияющие на обработку файлов опций».
-
Формат командной строки --no-defaultsНе читать файлы опций. Если запуск программы завершается ошибкой из-за чтения неизвестных опций из файла опций,
--no-defaultsможет быть использована для предотвращения их чтения.Исключением является файл
.mylogin.cnf, который читается во всех случаях, если он существует. Это позволяет указывать пароли более безопасным способом, чем в командной строке, даже при использовании--no-defaults. Чтобы создать.mylogin.cnf, используйте утилиту mysql_config_editor. См. Раздел 6.6.7, «mysql_config_editor — Утилита настройки MySQL».Дополнительную информацию об этой и других опциях файла опций см. в Разделе 6.2.2.3, «Опции командной строки, влияющие на обработку файлов опций».
-
Формат командной строки --print-defaultsВыводит имя программы и все опции, полученные из файлов опций.
Дополнительную информацию об этой и других опциях файла опций см. в Разделе 6.2.2.3, «Опции командной строки, влияющие на обработку файлов опций».
Опции DDL
Сценарии использования mysqldump включают настройку новой инстанции MySQL (включая таблицы базы данных) и замену данных в существующей инстанции существующими базами данных и таблицами. Следующие опции позволяют указать, что нужно разобрать и настроить при восстановлении дампа, закодировав различные операторы DDL в файле дампа.
-
Формат командной строки --add-drop-databaseЗапишите оператор
DROP DATABASEперед каждым операторомCREATE DATABASE. Этот параметр обычно используется совместно с параметром--all-databasesили--databases, так как операторыCREATE DATABASEне записываются, если не указан один из этих параметров.ПримечаниеВ MySQL 8.4 схема
mysqlсчитается системной схемой, которую конечные пользователи не могут удалить. Если--add-drop-databaseиспользуется с--all-databasesили--databases, где список схем для дампов включаетmysql, файл дампа содержит операторDROP DATABASE `mysql`, который вызывает ошибку при повторном загрузке файла дампа.Вместо этого, для использования
--add-drop-database, используйте--databasesсо списком схем для дампов, где этот список не включаетmysql. -
Формат командной строки --add-drop-tableЗапишите оператор
DROP TABLEперед каждым операторомCREATE TABLE. -
Формат командной строки --add-drop-triggerЗапишите оператор
DROP TRIGGERперед каждым операторомCREATE TRIGGER. -
Формат командной строки --all-tablespacesДобавляет в дамп таблицы все SQL-операторы, необходимые для создания всех используемых табличных пространств таблицей
NDB. Эта информация не включается в вывод mysqldump. Этот параметр в настоящее время актуален только для таблиц NDB Cluster. -
--no-create-db,-nФормат командной строки --no-create-dbПодавляет операторы
CREATE DATABASE, которые в противном случае включаются в вывод, если задан параметр--databasesили--all-databases. -
--no-create-info,-tФормат командной строки --no-create-infoНе записывайте операторы
CREATE TABLE, создающие каждую экспортируемую таблицу.ПримечаниеЭтот параметр не исключает операторы создания групп файлов журналов или табличных пространств из вывода mysqldump; однако, вы можете использовать параметр
--no-tablespacesдля этой цели. -
--no-tablespaces,-yФормат командной строки --no-tablespacesЭтот параметр подавляет все операторы
CREATE LOGFILE GROUPиCREATE TABLESPACEв выводе mysqldump. -
Формат командной строки --replace
Параметры отладки
Следующие параметры выводят информацию об отладке, кодируют информацию об отладке в файле дампов или позволяют операции дампа продолжить независимо от возможных проблем.
-
Формат командной строки --allow-keywordsРазрешает создание имён столбцов, являющихся ключевыми словами. Это достигается путём добавления префикса из имени таблицы к каждому имени столбца.
-
--comments,-iФормат командной строки --commentsЗаписывает дополнительную информацию в файл дампа, такую как версия программы, версия сервера и хост. Этот параметр включён по умолчанию. Чтобы подавить эту дополнительную информацию, используйте
--skip-comments. -
--debug[=,debug_options]-# [debug_options]Формат командной строки --debug[=debug_options]Тип Строка Значение по умолчанию d:t:o,/tmp/mysqldump.traceЗаписывает отладочный журнал. Типичная строка
debug_optionsимеет видd:t:o,. Значение по умолчанию —file_named:t:o,/tmp/mysqldump.trace.Этот параметр доступен только в том случае, если MySQL был скомпилирован с помощью
WITH_DEBUG. Выпущенные бинарные файлы MySQL, предоставленные компанией Oracle, не скомпилированы с использованием этого параметра. -
Формат командной строки --debug-checkТип Булево Значение по умолчанию FALSEВыводит некоторые отладочные сведения при завершении программы.
Этот параметр доступен только в том случае, если MySQL был скомпилирован с помощью
WITH_DEBUG. Выпущенные бинарные файлы MySQL, предоставленные компанией Oracle, не скомпилированы с использованием этого параметра. -
Формат командной строки --debug-infoТип Булево Значение по умолчанию FALSEВыводит отладочную информацию и статистику использования памяти и ЦП при завершении программы.
Этот параметр доступен только в том случае, если MySQL был скомпилирован с помощью
WITH_DEBUG. Выпущенные бинарные файлы MySQL, предоставленные компанией Oracle, не скомпилированы с использованием этого параметра. -
Формат командной строки --dump-dateТип Булево Значение по умолчанию TRUEЕсли указан параметр
--comments, mysqldump генерирует комментарий в конце дампа следующего формата:-- Dump completed on
DATEОднако дата приводит к тому, что файлы дампов, созданные в разное время, выглядят по-разному, даже если данные в противном случае идентичны.
--dump-dateи--skip-dump-dateуправляют добавлением даты в комментарий. По умолчанию используется--dump-date(включается дата в комментарии).--skip-dump-dateподавляет вывод даты. -
--force,-fФормат командной строки --forceИгнорировать все ошибки; продолжать выполнение, даже если при дампе таблицы возникает ошибка SQL.
Одно из применений этого параметра заключается в том, чтобы заставить mysqldump продолжить выполнение даже в том случае, если он сталкивается с представлением, которое стало недействительным, потому что его определение ссылается на таблицу, которая была удалена. Без
--force, mysqldump завершается с сообщением об ошибке. С--force, mysqldump выводит сообщение об ошибке, но также записывает в выходной дамп SQL-комментарий с определением представления и продолжает выполнение.Если также задан параметр
--ignore-errorдля игнорирования определённых ошибок,--forceимеет приоритет. -
Формат командной строки --log-error=file_nameТип Имя файла Записывать предупреждения и ошибки, добавляя их в указанный файл. По умолчанию ведение журнала отключено.
-
Формат командной строки --skip-commentsСм. описание параметра
--comments. -
--verbose,-vФормат командной строки --verboseРежим подробного вывода. Выводить больше информации о действиях программы.
Параметры справки
Следующие параметры отображают информацию о команде mysqldump самой по себе.
Параметры интернационализации
Следующие параметры изменяют способ представления данных символов командой mysqldump с настройками национального языка.
-
Формат командной строки --character-sets-dir=dir_nameТип Имя каталога Каталог, в котором установлены наборы символов. См. Раздел 12.15, «Настройка набора символов».
-
--default-character-set=charset_nameФормат командной строки --default-character-set=charset_nameТип Строка Значение по умолчанию utf8Использовать
charset_nameв качестве набора символов по умолчанию. См. Раздел 12.15, «Настройка набора символов». Если набор символов не указан, mysqldump используетutf8mb4. -
--no-set-names,-NФормат командной строки --no-set-namesУстаревшее Да Отключает настройку
--set-charset, то же самое, что и указание--skip-set-charset. -
Формат командной строки --set-charsetОтключается skip-set-charsetЗаписывает
SET NAMESв вывод. Этот параметр включен по умолчанию. Чтобы подавить операторdefault_character_setSET NAMES, используйте--skip-set-charset.
Параметры репликации
Команда mysqldump часто используется для создания пустой инстанции или инстанции, включающей данные, на сервере-реплике в конфигурации репликации. Следующие параметры относятся к дампу и восстановлению данных на серверах-источниках репликации и репликах.
-
Формат командной строки --apply-replica-statementsТип Булево Значение по умолчанию FALSEДля резервной копии репликации, созданной с помощью параметра
--dump-replica, этот параметр добавляет операторSTOP REPLICAперед оператором с координатами двоичного журнала и операторSTART REPLICAв конце вывода. -
Формат командной строки --apply-slave-statementsУстаревший Да Тип Булево Значение по умолчанию FALSEЭто устаревший псевдоним для
--apply-replica-statements. -
Формат командной строки --delete-source-logsНа сервере источника репликации удалите двоичные журналы, отправив оператор
PURGE BINARY LOGSна сервер после выполнения операции резервного копирования. Параметры требуют привилегииRELOAD, а также достаточных привилегий для выполнения этого оператора. Этот параметр автоматически включает--source-data. -
Формат командной строки --delete-master-logsУстаревший Да Это устаревший псевдоним для
--delete-source-logs. -
Формат командной строки --dump-replica[=value]Тип Числовой Значение по умолчанию 1Допустимые значения 12Этот параметр аналогичен
--source-data, за исключением того, что он используется для резервного копирования сервера репликации, чтобы создать файл резервной копии, который можно использовать для настройки другого сервера в качестве реплики с таким же источником, как у резервируемого сервера. Этот параметр включает в вывод резервной копии операторCHANGE REPLICATION SOURCE TO, который указывает координаты двоичного журнала (имя файла и позицию) источника резервируемой реплики. ОператорCHANGE REPLICATION SOURCE TOсчитывает значения изRelay_Master_Log_FileиExec_Master_Log_Posиз выводаSHOW REPLICA STATUSи использует их дляSOURCE_LOG_FILEиSOURCE_LOG_POSсоответственно. Это координаты сервера источника репликации, с которого реплика начинает репликацию.ПримечаниеНесоответствия в последовательности транзакций из релейного журнала, которые были выполнены, могут привести к тому, что будет использоваться неправильная позиция. Подробнее см. Раздел 19.5.1.34, «Репликация и несоответствия транзакций».
--dump-replicaприводит к использованию координат из источника, а не с резервируемого сервера, как это делает параметр--source-data. Кроме того, указание этого параметра переопределяет параметр--source-data.ПредупреждениеПараметр
--dump-replicaне следует использовать, если сервер, на который будет применена резервная копия, используетgtid_mode=ONиSOURCE_AUTO_POSITION=1.Значение параметра обрабатывается так же, как и для
--source-data. Установка значения без значения или 1 приводит к записи оператораCHANGE REPLICATION SOURCE TOв резервную копию. Установка значения 2 приводит к записи оператора, но в комментариях SQL. Это имеет тот же эффект, что и--source-data, в отношении включения или отключения других параметров и того, как обрабатывается блокировка.--dump-replicaзаставляет mysqldump остановить поток SQL репликации перед резервным копированием и запустить его снова после.--dump-replicaотправляет операторSHOW REPLICA STATUSна сервер для получения информации, поэтому они требуют привилегий для выполнения этого оператора.Параметры
--apply-replica-statementsи--include-source-host-portмогут использоваться совместно с--dump-replica. -
Формат командной строки --dump-slave[=value]Устаревший Да Тип Числовой Значение по умолчанию 1Допустимые значения 12Это устаревший псевдоним для
--dump-replica. -
Формат командной строки --include-source-host-portТип Булево Значение по умолчанию FALSEДобавляет параметры
SOURCE_HOSTиSOURCE_PORTдля имени хоста и номера TCP-порта источника репликации в операторCHANGE REPLICATION SOURCE TOв резервной копии репликации, созданной с помощью параметра--dump-replica. -
Формат командной строки --include-master-host-portУстаревший Да Тип Булево Значение по умолчанию FALSEЭто устаревший псевдоним для
--include-source-host-port. -
Формат командной строки --master-data[=value]Устаревший Да Тип Числовой Значение по умолчанию 1Допустимые значения 12Это устаревший псевдоним для
--source-data.
-
Формат командной строки --output-as-version=valueТип Перечисление Значение по умолчанию SERVERДопустимые значения BEFORE_8_0_23BEFORE_8_2_0Определяет уровень терминологии, используемой для заявлений, относящихся к репликам и событиям, что позволяет создавать дампы, совместимые со старыми версиями MySQL, которые не принимают новую терминологию. Этот параметр может принимать любое из следующих значений с эффектами, описанными ниже:
SERVER: Читает версию сервера и использует последние версии заявлений, совместимые с этой версией. Это значение по умолчанию.-
BEFORE_8_0_23: Заявления SQL репликации, использующие устаревшие термины, такие как “slave” и “master”, записываются в выходные данные вместо тех, которые используют “replica” и “source”, как в версиях MySQL до 8.0.23.Этот параметр также дублирует эффекты
BEFORE_8_2_0на выходные данныеSHOW CREATE EVENT. BEFORE_8_2_0: Этот параметр заставляетSHOW CREATE EVENTотражать то, как событие было создано на сервере MySQL до версии 8.2.0, отображаяDISABLE ON SLAVEвместоDISABLE ON REPLICA.
Этот параметр влияет на вывод из
--events,--dump-replica,--source-data,--apply-replica-statementsи--include-source-host-port. -
Формат командной строки --source-data[=value]Тип Числовой Значение по умолчанию 1Допустимые значения 12Используется для дампинга реплицирующегося сервера источника для создания файла дампа, который можно использовать для настройки другого сервера в качестве реплики источника. Параметры заставляют вывод дампа включать утверждение
CHANGE REPLICATION SOURCE TO, указывающее координаты бинарного журнала (имя файла и позиция) сервера дампов. Это координаты сервера-источника репликации, с которых реплика должна начать репликацию после загрузки файла дампов в реплику.Если значение параметра равно 2, утверждение
CHANGE REPLICATION SOURCE TOзаписывается как комментарий SQL и поэтому является только информативным; он не имеет эффекта при повторной загрузке файла дампов. Если значение параметра равно 1, утверждение не записывается как комментарий и вступает в силу при повторной загрузке файла дампов. Если значение параметра не указано, значение по умолчанию равно 1.--source-dataотправляет утверждениеSHOW BINARY LOG STATUSна сервер для получения информации, поэтому они требуют привилегий, достаточных для выполнения этого утверждения. Этот параметр также требует привилегииRELOAD, и бинарный журнал должен быть включен.--source-dataавтоматически отключает--lock-tables. Они также включают--lock-all-tables, если также указан--single-transaction, в этом случае глобальная блокировка чтения приобретается только на короткое время в начале дампинга (см. описание--single-transaction). Во всех случаях любое действие с журналами происходит в точный момент дампинга.Также возможно настроить реплику, создав дамп существующей реплики источника, используя параметр
--dump-replica, который переопределяет--source-data, заставляя его игнорировать.
-
Командная строка --set-gtid-purged=valueТип Перечисление Значение по умолчанию AUTOДопустимые значения OFFONAUTOЭтот параметр предназначен для серверов, использующих репликацию на основе GTID (
gtid_mode=ON). Он контролирует включение оператораSET @@GLOBAL.gtid_purgedв вывод дампа, который обновляет значениеgtid_purgedна сервере, где загружается файл дампа, для добавления набора GTID с исходного сервера из переменной системыgtid_executed.gtid_purgedсодержит GTID всех транзакций, которые были применены на сервере, но не существуют ни в одном файле бинарного журнала на сервере. Поэтому mysqldump добавляет GTID транзакций, выполненных на исходном сервере, чтобы целевой сервер записывал эти транзакции как примененные, хотя их нет в его бинарных журналах.--set-gtid-purgedтакже контролирует включение оператораSET @@SESSION.sql_log_bin=0, который отключает логирование бинарных данных во время перезагрузки файла дампа. Этот оператор предотвращает создание и назначение новых GTID транзакциям в файле дампа по мере их выполнения, чтобы были использованы исходные GTID транзакций.Если параметр
--set-gtid-purgedне задан, по умолчанию операторSET @@GLOBAL.gtid_purgedвключается в вывод дампа, если на сервере, который вы резервируете, включены GTID, и набор GTID в глобальном значении переменной системыgtid_executedне пуст. Также включается операторSET @@SESSION.sql_log_bin=0, если на сервере включены GTID.Вы можете либо заменить значение
gtid_purgedуказанным набором GTID, либо добавить знак плюс (+) к оператору, чтобы добавить указанный набор GTID к набору GTID, который уже хранится вgtid_purged. ОператорSET @@GLOBAL.gtid_purged, записанный mysqldump, включает знак плюс (+) в комментарии, специфичном для версии, чтобы MySQL добавлял набор GTID из файла дампа к существующему значениюgtid_purged.Важно отметить, что значение, включенное mysqldump для оператора
SET @@GLOBAL.gtid_purged, включает GTID всех транзакций в набореgtid_executedна сервере, даже тех, которые изменили подавленные части базы данных или другие базы данных на сервере, которые не были включены в частичный дамп. Это означает, что после обновления значенияgtid_purgedна сервере, где воспроизводится файл дампа, присутствуют GTID, которые не относятся к каким-либо данным на целевом сервере. Если вы не воспроизводите дополнительные файлы дампов на целевом сервере, лишние GTID не вызывают проблем с будущей работой сервера, но затрудняют сравнение или согласование наборов GTID на разных серверах в топологии репликации. Если вы воспроизведете дальнейший файл дампа на целевом сервере, который содержит те же GTID (например, другой частичный дамп с того же исходного сервера), любой операторSET @@GLOBAL.gtid_purgedво втором файле дампа завершится с ошибкой. В этом случае либо удалите оператор вручную перед воспроизведением файла дампа, либо выведите файл дампа без этого оператора.Если оператор
SET @@GLOBAL.gtid_purgedне даст желаемого результата на вашем целевом сервере, вы можете исключить оператор из вывода или включить его, но прокомментировать его, чтобы он не выполнялся автоматически. Вы также можете включить оператор, но вручную отредактировать его в файле дампа, чтобы достичь желаемого результата.Возможные значения для параметра
--set-gtid-purgedследующие:-
AUTO Значение по умолчанию. Если на сервере, который вы резервируете, включены GTID, и
gtid_executedне пуст, добавляется операторSET @@GLOBAL.gtid_purgedс набором GTID изgtid_executed. Если GTID включены, добавляется операторSET @@SESSION.sql_log_bin=0. Если GTID не включены на сервере, операторы не добавляются в вывод.-
OFF Оператор
SET @@GLOBAL.gtid_purgedне добавляется в вывод, иSET @@SESSION.sql_log_bin=0не добавляется в вывод. Для сервера, где GTID не используются, используйте этот параметр илиAUTO. Используйте этот параметр для сервера с включенными GTID только если вы уверены, что необходимый набор GTID уже присутствует вgtid_purgedна целевом сервере и его не нужно изменять, или если вы планируете вручную определить и добавить любые отсутствующие GTID.-
ON Если на сервере, который вы резервируете, включены GTID, добавляется оператор
SET @@GLOBAL.gtid_purged(еслиgtid_executedне пуст) иSET @@SESSION.sql_log_bin=0. Возникает ошибка, если вы установили этот параметр, а на сервере GTID не включены. Для сервера с включенными GTID используйте этот параметр илиAUTO, если вы не уверены, что GTID вgtid_executedне требуются на целевом сервере.-
COMMENTED Если на сервере, который вы резервируете, включены GTID, добавляется оператор
SET @@GLOBAL.gtid_purged(еслиgtid_executedне пуст), но он прокомментирован. Это означает, что значениеgtid_executedдоступно в выводе, но никаких действий не выполняется автоматически при перезагрузке файла дампа. Добавляется операторSET @@SESSION.sql_log_bin=0, и он не прокомментирован. С помощьюCOMMENTEDможно управлять использованием набораgtid_executedвручную или с помощью автоматизации. Например, вы можете предпочесть это, если вы мигрируете данные на другой сервер, на котором уже есть другие активные базы данных.
-
Параметры формата
Следующие параметры определяют, как представить весь файл дампа или определенные типы данных в файле дампа. Они также управляют тем, записывается ли в файл дампа определенная дополнительная информация.
-
Формат командной строки --compactСоздавать более компактный вывод. Эта опция включает опции
--skip-add-drop-table,--skip-add-locks,--skip-comments,--skip-disable-keysи--skip-set-charset. -
Формат командной строки --compatible=name[,name,...]Тип String Значение по умолчанию ''Допустимые значения ansimysql323mysql40postgresqloraclemssqldb2maxdbno_key_optionsno_table_optionsno_key_optionsСоздавать вывод, более совместимый с другими системами баз данных или со старыми серверами MySQL. Единственным допустимым значением для этой опции является
ansi, которое имеет то же значение, что и соответствующая опция для установки режима SQL сервера. См. Раздел 7.1.11, «Режимы SQL сервера». -
Формат командной строки --complete-insertИспользовать полные операторы
INSERT, которые включают имена столбцов. -
Формат командной строки --create-optionsВключать все специфичные для MySQL параметры таблиц в операторы
CREATE TABLE. -
--fields-terminated-by=...,--fields-enclosed-by=...,--fields-optionally-enclosed-by=...,--fields-escaped-by=...Формат командной строки --fields-terminated-by=stringТип String Формат командной строки --fields-enclosed-by=stringТип String Формат командной строки --fields-optionally-enclosed-by=stringТип String Формат командной строки --fields-escaped-byТип String Эти опции используются с опцией
--tabи имеют то же значение, что и соответствующие пунктыFIELDSдляLOAD DATA. См. Раздел 15.2.9, «Оператор LOAD DATA». -
Формат командной строки --hex-blobВыгружать двоичные столбцы, используя шестнадцатеричную нотацию (например,
'abc'становится0x616263). Затронутые типы данных —BINARY,VARBINARY,BLOB,BIT, все пространственные типы данных и другие не двоичные типы данных при использовании с набором символовbinary.Опция
--hex-blobигнорируется, когда используется--tab. -
Формат командной строки --lines-terminated-by=stringТип String Эта опция используется с опцией
--tabи имеет то же значение, что и соответствующий пунктLINESдляLOAD DATA. См. Раздел 15.2.9, «Оператор LOAD DATA». -
--quote-names,-QФормат командной строки --quote-namesОтключено skip-quote-namesЗаключать идентификаторы (такие как имена баз данных, таблиц и столбцов) в символы
`. Если включен режим SQLANSI_QUOTES, идентификаторы заключаются в символы". Эта опция включена по умолчанию. Её можно отключить с помощью--skip-quote-names, но эта опция должна быть указана после любой опции, такой как--compatible, которая может включить--quote-names. -
--result-file=,file_name-rfile_nameФормат командной строки --result-file=file_nameТип Имя файла Направлять вывод в указанный файл. Результирующий файл создаётся, и его предыдущее содержимое перезаписывается, даже если во время генерации дампов возникают ошибки.
Эта опция должна использоваться в Windows для предотвращения преобразования символов перевода строки
\nв последовательности возврата каретки/перевода строки\r\n. -
--show-create-skip-secondary-engine=valueФормат командной строки --show-create-skip-secondary-engineИсключает пункт
SECONDARY ENGINEиз операторовCREATE TABLE. Это делается путём включения системной переменнойshow_create_table_skip_secondary_engineна время операции дампинга. В качестве альтернативы можно включить системную переменнуюshow_create_table_skip_secondary_engineперед использованием mysqldump.
-
--tab=,dir_name-Tdir_nameФормат командной строки --tab=dir_nameТип Имя каталога Создаёт файлы данных в формате с табуляцией. Для каждой экспортируемой таблицы, mysqldump создаёт файл, содержащий инструкцию
CREATE TABLEдля создания таблицы, а сервер записывает файл, содержащий данные. Значение параметра — это каталог, в котором будут записаны файлы.ПримечаниеЭтот параметр следует использовать только при выполнении mysqldump на том же компьютере, что и сервер mysqld. Поскольку сервер создаёт файлы
*.txtв указанном каталоге, каталог должен быть доступен для записи серверу, а у учётной записи MySQL, которую вы используете, должны быть праваFILE. Поскольку mysqldump создаёт*.sqlв том же каталоге, он также должен быть доступен для записи вашей учётной записью системы.По умолчанию файлы данных
.txtформатируются с использованием табуляции между значениями столбцов и новой строки в конце каждой строки. Формат можно явно указать с помощью параметров--fields-иxxx--lines-terminated-by.Значения столбцов преобразуются в кодировку символов, указанную параметром
--default-character-set. -
Формат командной строки --tz-utcОтключено в skip-tz-utcЭтот параметр позволяет экспортировать и импортировать столбцы
TIMESTAMPмежду серверами в разных часовых поясах. mysqldump устанавливает часовой пояс соединения на UTC и добавляетSET TIME_ZONE='+00:00'в файл дампа. Без этого параметра столбцыTIMESTAMPэкспортируются и импортируются в часовых поясах, локальных для исходного и целевого серверов, что может привести к изменению значений, если серверы находятся в разных часовых поясах.--tz-utcтакже защищает от изменений из-за перехода на летнее время.--tz-utcвключен по умолчанию. Чтобы отключить его, используйте--skip-tz-utc. -
--xml,-XФормат командной строки --xmlВывод дампов записывается в формате XML.
NULL,'NULL'и Пустые значения: Для столбца с именемcolumn_name, значениеNULL, пустая строка и строковое значение'NULL'различаются в выводе, генерируемом этим параметром, следующим образом.Значение: XML представление: NULL(неизвестное значение)<field name="column_name" xsi:nil="true" />''(пустая строка)<field name="column_name"></field>'NULL'(строковое значение)<field name="column_name">NULL</field>Вывод от клиента mysql при использовании параметра
--xmlтакже соответствует приведенным выше правилам. (См. Раздел 6.5.1.1, «Параметры клиента mysql».)XML-вывод из mysqldump включает XML-пространство имён, как показано здесь:
$>
mysqldump --xml -u root world City<?xml version="1.0"?> <mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <database name="world"> <table_structure name="City"> <field Field="ID" Type="int(11)" Null="NO" Key="PRI" Extra="auto_increment" /> <field Field="Name" Type="char(35)" Null="NO" Key="" Default="" Extra="" /> <field Field="CountryCode" Type="char(3)" Null="NO" Key="" Default="" Extra="" /> <field Field="District" Type="char(20)" Null="NO" Key="" Default="" Extra="" /> <field Field="Population" Type="int(11)" Null="NO" Key="" Default="0" Extra="" /> <key Table="City" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="ID" Collation="A" Cardinality="4079" Null="" Index_type="BTREE" Comment="" /> <options Name="City" Engine="MyISAM" Version="10" Row_format="Fixed" Rows="4079" Avg_row_length="67" Data_length="273293" Max_data_length="18858823439613951" Index_length="43008" Data_free="0" Auto_increment="4080" Create_time="2007-03-31 01:47:01" Update_time="2007-03-31 01:47:02" Collation="latin1_swedish_ci" Create_options="" Comment="" /> </table_structure> <table_data name="City"> <row> <field name="ID">1</field> <field name="Name">Kabul</field> <field name="CountryCode">AFG</field> <field name="District">Kabol</field> <field name="Population">1780000</field> </row>...<row> <field name="ID">4079</field> <field name="Name">Rafah</field> <field name="CountryCode">PSE</field> <field name="District">Rafah</field> <field name="Population">92020</field> </row> </table_data> </database> </mysqldump>
Параметры фильтрации
Следующие параметры контролируют виды схемных объектов, которые записываются в файл дампа: по категории, например, триггеры или события; по имени, например, выбирая, какие базы данных и таблицы экспортировать; или даже отфильтровывая строки из данных таблицы с помощью WHERE-запроса.
-
--all-databases,-AФормат командной строки --all-databasesДамп всех таблиц во всех базах данных. Это то же самое, что использовать параметр
--databasesи указывать все базы данных в командной строке.ПримечаниеСм. описание
--add-drop-databaseдля получения информации о несовместимости этого параметра с--all-databases.До MySQL 8.4, параметры
--routinesи--eventsдля mysqldump не требовались для включения хранимых процедур и событий при использовании параметра--all-databases: дамп включал системную базу данныхmysql, а следовательно, также таблицыmysql.procиmysql.event, содержащие определения хранимых процедур и событий. Начиная с MySQL 8.4, таблицыmysql.eventиmysql.procне используются. Определения соответствующих объектов хранятся в таблицах словаря данных, но эти таблицы не выгружаются. Чтобы включить хранимые процедуры и события в дамп, созданный с помощью--all-databases, используйте параметры--routinesи--eventsявно. -
--databases,-BФормат командной строки --databasesДамп нескольких баз данных. Обычно mysqldump обрабатывает первый аргумент имени в командной строке как имя базы данных, а последующие имена — как имена таблиц. С помощью этого параметра все аргументы имени обрабатываются как имена баз данных. Операторы
CREATE DATABASEиUSEвключаются в вывод перед каждой новой базой данных.Этот параметр может использоваться для дампа базы данных
performance_schema, которая обычно не дампается даже с параметром--all-databases. (Также используйте параметр--skip-lock-tables.)ПримечаниеСм. описание
--add-drop-databaseдля получения информации о несовместимости этого параметра с--databases. -
--events,-EФормат командной строки --eventsВключить события планировщика событий для дампленных баз данных в вывод. Для этого параметра требуются права
EVENTдля этих баз данных.Вывод, сгенерированный с помощью
--events, содержит операторыCREATE EVENTдля создания событий. -
--ignore-error=error[,error]...Формат командной строки --ignore-error=error[,error]...Тип String Игнорировать указанные ошибки. Значение параметра представляет собой список номеров ошибок, разделенных запятыми, указывающих ошибки, которые необходимо игнорировать во время выполнения mysqldump. Если также задан параметр
--forceдля игнорирования всех ошибок,--forceимеет приоритет. -
--ignore-table=db_name.tbl_nameФормат командной строки --ignore-table=db_name.tbl_nameТип String Не дампать указанную таблицу, которая должна быть указана с использованием имен как базы данных, так и таблицы. Чтобы игнорировать несколько таблиц, используйте этот параметр несколько раз. Этот параметр также может использоваться для игнорирования представлений.
-
Формат командной строки --ignore-viewsТип Boolean Значение по умолчанию FALSEПропускает представления таблиц в дамп-файле.
-
Формат командной строки --init-command=strТип String Единственный оператор SQL для выполнения после подключения к серверу MySQL. Определение сбрасывает существующие операторы, определенные им или
init-command-add. -
Формат командной строки --init-command-add=strТип String Добавить дополнительный оператор SQL для выполнения после подключения или повторного подключения к серверу MySQL. Он может использоваться без
--init-command, но не оказывает никакого эффекта, если используется перед ним, потому чтоinit-commandсбрасывает список вызываемых команд. -
--no-data,-dФормат командной строки --no-dataНе записывать информацию о строках таблицы (то есть не дампать содержимое таблицы). Это полезно, если вы хотите дампать только оператор
CREATE TABLEдля таблицы (например, чтобы создать пустую копию таблицы, загрузив дамп-файл). -
--routines,-RФормат командной строки --routinesВключить хранимые процедуры (процедуры и функции) для дампленных баз данных в вывод. Для этого параметра требуется глобальное право
SELECT.Вывод, сгенерированный с помощью
--routines, содержит операторыCREATE PROCEDUREиCREATE FUNCTIONдля создания процедур. -
--skip-generated-invisible-primary-keyФормат командной строки --skip-generated-invisible-primary-keyТип Boolean Значение по умолчанию FALSEЭтот параметр приводит к тому, что сгенерированные невидимые первичные ключи исключаются из вывода. Для получения дополнительной информации см. Раздел 15.1.20.11, «Сгенерированные невидимые первичные ключи».
-
Формат командной строки --tablesПереопределите
--databasesили опцию-B. mysqldump рассматривает все аргументы имени, следующие за опцией, как имена таблиц. -
Формат командной строки --triggersОтключено в skip-triggersВключает триггеры для каждой дублируемой таблицы в выводе. Эта опция включена по умолчанию; отключить её можно с помощью
--skip-triggers.Для дублирования триггеров таблицы необходимо иметь право
TRIGGERдля этой таблицы.Разрешены несколько триггеров. mysqldump дублирует триггеры в порядке активации, чтобы при повторном загрузке файла резервной копии триггеры создавались в том же порядке активации. Однако, если файл резервной копии mysqldump содержит несколько триггеров для таблицы с одинаковым событием триггера и временем действия, попытки загрузки файла резервной копии в более старую версию сервера, не поддерживающую несколько триггеров, приведут к ошибке. (Для обходного решения см. ; вы можете преобразовать триггеры для совместимости со старыми серверами.)
-
--where=',where_condition'-w 'where_condition'Формат командной строки --where='where_condition'Дублируются только строки, выбранные заданным
WHEREусловием. Кавычки вокруг условия обязательны, если оно содержит пробелы или другие символы, являющиеся специальными для вашего интерпретатора команд.Примеры:
--where="user='jimf'" -w"userid>1" -w"userid<1"
Параметры производительности
Следующие параметры наиболее важны для производительности, особенно операций восстановления. Для больших наборов данных операция восстановления (обработка INSERT операторов в файле резервной копии) является наиболее ресурсоёмкой частью. Если необходимо быстро восстановить данные, заранее спланируйте и протестируйте производительность этого этапа. Если время восстановления измеряется часами, вы можете предпочесть альтернативное решение для резервного копирования и восстановления, например, MySQL Enterprise Backup для баз данных только для резервного копирования и смешанного использования.
На производительность также влияют параметры транзакций, в первую очередь для операции резервного копирования.
-
Формат командной строки --column-statisticsТип Булево Значение по умолчанию OFFДобавьте операторы
ANALYZE TABLEв выходные данные, чтобы при перезагрузке файла дампа генерировать статистику гистограмм для дампленных таблиц. Этот параметр по умолчанию отключен, потому что генерация гистограмм для больших таблиц может занимать много времени. -
--disable-keys,-KФормат командной строки --disable-keysДля каждой таблицы заключите операторы
INSERTв операторы/*!40000 ALTER TABLEиtbl_nameDISABLE KEYS */;/*!40000 ALTER TABLE. Это ускоряет загрузку файла дампа, потому что индексы создаются после вставки всех строк. Этот параметр эффективен только для неуникальных индексов таблицtbl_nameENABLE KEYS */;MyISAM. -
Формат командной строки --extended-insertОтключено skip-extended-insertЗапишите операторы
INSERTс использованием синтаксиса для нескольких строк, который включает несколько списковVALUES. Это приводит к меньшему размеру файла дампа и ускоряет вставки при перезагрузке файла. -
Формат командной строки --insert-ignoreЗапишите операторы
INSERT IGNORE, а неINSERTоператоры. -
Формат командной строки --max-allowed-packet=valueТип Числовой Значение по умолчанию 25165824Максимальный размер буфера для связи клиент/сервер. По умолчанию 24 МБ, максимум 1 ГБ.
ПримечаниеЗначение этого параметра специфично для mysqldump и не следует путать с системной переменной MySQL сервера
max_allowed_packet; значение сервера не может быть превышено одним пакетом от mysqldump, независимо от настройки параметра mysqldump, даже если последний больше. -
--mysqld-long-query-time=valueФормат командной строки --mysqld-long-query-time=valueТип Числовой Значение по умолчанию Server global settingУстановите сессионное значение системной переменной
long_query_time. Используйте этот параметр, если вы хотите увеличить время, разрешенное для запросов от mysqldump перед их записью в файл журнала медленных запросов. mysqldump выполняет полный сканирование таблицы, что означает, что его запросы часто могут превышать глобальное значениеlong_query_time, полезное для обычных запросов. Глобальное значение по умолчанию составляет 10 секунд.Вы можете использовать
--mysqld-long-query-timeдля задания сессионного значения от 0 (что означает, что каждый запрос от mysqldump записывается в журнал медленных запросов) до 31536000, что составляет 365 дней в секундах. Для параметра mysqldump вы можете указать только целые секунды. Если вы не укажете этот параметр, глобальное значение сервера применяется к запросам mysqldump. -
Формат командной строки --net-buffer-length=valueТип Числовой Значение по умолчанию 16384Начальный размер буфера для связи клиент/сервер. При создании операторов
INSERTдля нескольких строк (как с параметром--extended-insertили--opt), mysqldump создает строки длиной до--net-buffer-lengthбайт. Если вы увеличиваете эту переменную, убедитесь, что системная переменная MySQL сервераnet_buffer_lengthимеет значение, по крайней мере, такое же большое. -
Формат командной строки --network-timeout[={0|1}]Тип Булево Значение по умолчанию TRUEРазрешить дамп больших таблиц, установив
--max-allowed-packetна максимальное значение и таймауты чтения и записи сети на большое значение. Этот параметр включен по умолчанию. Чтобы отключить его, используйте--skip-network-timeout. -
Формат командной строки --optОтключено skip-optЭтот параметр, включенный по умолчанию, является сокращением для сочетания
--add-drop-table--add-locks--create-options--disable-keys--extended-insert--lock-tables--quick--set-charset. Он обеспечивает быструю операцию дампирования и создает файл дампа, который можно быстро загрузить в сервер MySQL.Поскольку параметр
--optвключен по умолчанию, вы указываете только обратное, параметр--skip-opt, чтобы отключить несколько параметров по умолчанию. См. обсуждение групп параметровmysqldumpдля получения информации о выборочном включении или отключении подмножества параметров, на которые влияет--opt. -
--quick,-qФормат командной строки --quickОтключено skip-quickЭтот параметр полезен для дампирования больших таблиц. Он заставляет mysqldump извлекать строки для таблицы с сервера по одной строке за раз, а не извлекать весь набор строк и буферизовать его в памяти перед записью.
-
Формат командной строки --skip-optСм. описание параметра
--opt.
Параметры транзакций
Следующие параметры балансируют производительность операции дампирования с надёжностью и согласованностью экспортированных данных.
-
Формат командной строки --add-locksОкружите каждый дамп таблицы операторами
LOCK TABLESиUNLOCK TABLES. Это приводит к более быстрым вставкам при перезагрузке файла дампа. См. Раздел 10.2.5.1, «Оптимизация операторов INSERT». -
--flush-logs,-FФормат командной строки --flush-logsОчистите файлы журналов сервера MySQL перед началом дампа. Для этого параметра требуется привилегия
RELOAD. Если вы используете этот параметр в сочетании с параметром--all-databases, журналы очищаются для каждой дампаемой базы данных. Исключением является использование--lock-all-tables,--source-dataили--single-transaction. В этих случаях журналы очищаются только один раз, в момент блокировки всех таблиц с помощьюFLUSH TABLES WITH READ LOCK. Если вы хотите, чтобы дамп и очистка журнала произошли в точно один и тот же момент, следует использовать--flush-logsвместе с--lock-all-tables,--source-dataили--single-transaction. -
Формат командной строки --flush-privilegesДобавьте оператор
FLUSH PRIVILEGESв вывод дампа после дампа базы данныхmysql. Этот параметр следует использовать всякий раз, когда дамп содержит базу данныхmysqlи любую другую базу данных, которая зависит от данных в базе данныхmysqlдля правильного восстановления.Поскольку файл дампа содержит оператор
FLUSH PRIVILEGES, для перезагрузки файла требуются права доступа, достаточные для выполнения этого оператора. -
Формат командной строки --lock-all-tablesЗаблокируйте все таблицы во всех базах данных. Это достигается путем получения глобальной блокировки чтения на время всего дампа. Этот параметр автоматически отключает
--single-transactionи--lock-tables. -
--lock-tables,-lФормат командной строки --lock-tablesДля каждой дампаемой базы данных заблокируйте все таблицы перед их дампами. Таблицы блокируются с помощью
READ LOCAL, чтобы разрешить параллельные вставки в случае таблицMyISAM. Для транзакционных таблиц, таких какInnoDB,--single-transactionявляется гораздо лучшим вариантом, чем--lock-tables, поскольку ему не нужно блокировать таблицы вообще.Поскольку
--lock-tablesблокирует таблицы для каждой базы данных отдельно, этот параметр не гарантирует логической согласованности таблиц в файле дампа между базами данных. Таблицы в разных базах данных могут быть сдамплены в совершенно разных состояниях.Некоторые параметры, такие как
--opt, автоматически включают--lock-tables. Если вы хотите переопределить это, используйте--skip-lock-tablesв конце списка параметров. -
Формат командной строки --no-autocommitЗаключите операторы
INSERTдля каждой дампаемой таблицы в операторыSET autocommit = 0иCOMMIT. -
Формат командной строки --order-by-primaryДамп строк каждой таблицы сортируется по её первичному ключу или по её первому уникальному индексу, если такой индекс существует. Это полезно при дампа таблицы
MyISAMдля загрузки в таблицуInnoDB, но делает операцию дампа значительно дольше. -
--shared-memory-base-name=nameФормат командной строки --shared-memory-base-name=nameСпецифично для платформы Windows В Windows имя разделяемой памяти для использования для соединений, выполненных с использованием разделяемой памяти с локальным сервером. Значение по умолчанию —
MYSQL. Имя разделяемой памяти чувствительно к регистру.Этот параметр применяется только в том случае, если сервер был запущен с включенной системной переменной
shared_memoryдля поддержки соединений с разделяемой памятью. -
Формат командной строки --single-transactionЭтот параметр устанавливает режим изоляции транзакций в
REPEATABLE READи отправляет оператор SQLSTART TRANSACTIONна сервер перед дампами данных. Он полезен только с транзакционными таблицами, такими какInnoDB, поскольку тогда он дампает согласованное состояние базы данных в момент, когда был выданSTART TRANSACTION, не блокируя при этом никакие приложения.Привилегия
RELOADилиFLUSH_TABLESтребуется с--single-transaction, если используются какgtid_mode=ON, так иgtid_purged=ON|AUTO.При использовании этого параметра следует помнить, что только таблицы
InnoDBдампаются в согласованном состоянии. Например, любые таблицыMyISAMилиMEMORY, дампаемые при использовании этого параметра, могут всё ещё изменять своё состояние.В процессе дампа
--single-transaction, чтобы обеспечить действительный файл дампа (правильное содержимое таблицы и координаты двоичного журнала), ни одно другое соединение не должно использовать следующие операторы:ALTER TABLE,CREATE TABLE,DROP TABLE,RENAME TABLE,TRUNCATE TABLE. Согласованное чтение не изолировано от этих операторов, поэтому их использование в таблице, которая должна быть сдампена, может привести к тому, чтоSELECT, выполняемый mysqldump для извлечения содержимого таблицы, получит некорректное содержимое или завершится с ошибкой.Параметр
--single-transactionи параметр--lock-tablesявляются взаимоисключающими, посколькуLOCK TABLESприводит к тому, что любые ожидающие транзакции неявно завершаются.Для дампа больших таблиц объедините параметр
--single-transactionс параметром--quick.
Группы параметров
Опция
--optвключает несколько настроек, которые работают вместе для выполнения быстрого дампового процесса. Все эти настройки включены по умолчанию, потому что--optвключена по умолчанию. Таким образом, вы редко, если вообще, указываете--opt. Вместо этого вы можете отключить эти настройки как группу, указав--skip-opt, а затем, по желанию, повторно включить определенные настройки, указав соответствующие опции в командной строке позже.Опция
--compactотключает несколько настроек, которые управляют тем, отображаются ли необязательные операторы и комментарии в выводе. Опять же, вы можете дополнить эту опцию другими опциями, которые повторно включают определенные настройки, или включить все настройки, используя форму--skip-compact.
При выборочном включении или отключении эффекта групповой опции порядок важен, потому что опции обрабатываются от первой до последней. Например, --disable-keys --lock-tables --skip-opt не будут иметь желаемого эффекта; это то же самое, что и --skip-opt само по себе.
Примеры
Для создания резервной копии всей базы данных:
mysqldump db_name > backup-file.sql
Для загрузки файла дампа обратно на сервер:
mysql db_name < backup-file.sql
Другой способ перезагрузки файла дампа:
mysql -e "source /path-to-backup/backup-file.sql" db_name
mysqldump также очень полезен для заполнения баз данных путем копирования данных с одного сервера MySQL на другой:
mysqldump --opt db_name | mysql --host=remote_host -C db_name
Вы можете выполнить дамп нескольких баз данных одной командой:
mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql
Чтобы выполнить дамп всех баз данных, используйте опцию --all-databases:
mysqldump --all-databases > all_databases.sql
Для InnoDB таблиц, mysqldump предоставляет способ создания резервной копии в режиме онлайн:
mysqldump --all-databases --source-data --single-transaction > all_databases.sql
Эта резервная копия приобретает глобальную блокировку чтения для всех таблиц (с использованием FLUSH TABLES WITH READ LOCK) в начале дампа. Как только эта блокировка приобретена, считываются координаты двоичного журнала, и блокировка снимается. Если выполняются длинные операторы обновления, когда выпущен оператор FLUSH, сервер MySQL может зависнуть, пока эти операторы не завершатся. После этого дамп становится без блокировки и не мешает чтению и записи в таблицы. Если операторы обновления, которые получает сервер MySQL, короткие (с точки зрения времени выполнения), начальный период блокировки не должен быть заметен, даже с множеством обновлений.
Для восстановления по состоянию на определённую точку времени (также известного как «продвижение вперёд», когда необходимо восстановить старую резервную копию и воспроизвести изменения, произошедшие после этой резервной копии), часто бывает полезно переключить двоичный журнал (см. Раздел 7.4.4, «Двоичный журнал») или по крайней мере знать координаты двоичного журнала, к которому соответствует дамп:
mysqldump --all-databases --source-data=2 > all_databases.sql
Или:
mysqldump --all-databases --flush-logs --source-data=2 > all_databases.sql
Опция --source-data может использоваться одновременно с опцией --single-transaction, что обеспечивает удобный способ создания резервной копии в режиме онлайн, пригодной для использования перед восстановлением по состоянию на определённую точку времени, если таблицы хранятся с помощью движка хранения InnoDB.
Дополнительную информацию о создании резервных копий см. в Разделе 9.2, «Методы резервного копирования баз данных» и Разделе 9.3, «Пример стратегии резервного копирования и восстановления».
Для выбора эффекта
--opt, за исключением некоторых функций, используйте опцию--skipдля каждой функции. Для отключения расширенных вставок и буферизации памяти используйте--opt--skip-extended-insert--skip-quick. (На самом деле,--skip-extended-insert--skip-quickдостаточно, потому что--optвключена по умолчанию.)Для отмены
--optдля всех функций, за исключением отключения индексов и блокировки таблиц, используйте--skip-opt--disable-keys--lock-tables.
Ограничения
mysqldump по умолчанию не выполняет дамп схемы performance_schema или sys. Чтобы выполнить дамп любой из них, укажите их явно в командной строке. Вы также можете указать их с помощью опции --databases. Для performance_schema также используйте опцию --skip-lock-tables.
mysqldump не выполняет дамп схемы INFORMATION_SCHEMA.
mysqldump не выполняет дамп операторов InnoDB CREATE
TABLESPACE.
mysqldump не выполняет дамп базы данных информации кластера NDB ndbinfo.
mysqldump включает операторы для повторного создания таблиц general_log и slow_query_log для дампов базы данных mysql. Содержимое таблиц журнала не сохраняется в дампе.
Если у вас возникли проблемы с резервным копированием представлений из-за недостаточных привилегий, см. Раздел 27.9, «Ограничения на представления» для обходного пути.
© 2025 Oracle
Licensed under the GPLv2 License.