6.5.4 mysqldump — Программа резервного копирования баз данных
Утилита клиента mysqldump выполняет создание набора SQL-команд, которые можно выполнить для воспроизведения исходных определений объектов базы данных и данных таблиц. Она экспортирует одну или несколько баз данных MySQL для резервного копирования или передачи на другой SQL-сервер. Команда mysqldump также может генерировать вывод в формате CSV, других разделительных текстовых форматах или XML.
Рассмотрите использование , которое обеспечивает параллельный экспорт с использованием нескольких потоков, сжатие файлов, отображение информации о ходе выполнения, а также облачные возможности, такие как потоковая передача в Oracle Cloud Infrastructure Object Storage, совместимость и изменения в службе MySQL HeatWave. Экспорт легко импортировать в экземпляр MySQL Server или базу данных MySQL HeatWave Service с помощью . Инструкции по установке MySQL Shell можно найти .
Для mysqldump требуется как минимум привилегия 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-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 наборы шифров для шифрованных соединений |
| --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.3, «Подключаемая аутентификация клиента в открытом виде».) -
Формат командной строки --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.1, «Подключаемая аутентификация кэширования 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.Значение по умолчанию для опции плагина на стороне клиента использует интерфейс поставщика поддержки безопасности (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.2, «Подключаемая аутентификация SHA-256» и Разделе 8.4.1.1, «Подключаемая кэширующая аутентификация 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 9.2 схема
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.35, «Репликация и несоответствия транзакций».
--dump-replicaвызывает использование координат из источника вместо координат дампированного сервера, как это делает параметр--source-data. Кроме того, указание этого параметра переопределяет параметр--source-data.ПредупреждениеПараметр
--dump-replicaне следует использовать, если сервер, на который будет применена резервная копия, используетgtid_mode=ONиSOURCE_AUTO_POSITION=1.Значение параметра обрабатывается так же, как и для
--source-data. Установка значения, равного 0 или 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/IP порта источника реплики к оператору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, как показано в таблице.Значение: Представление в 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 Client Options”.)Вывод в формате 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 9.2 параметры
--routinesи--eventsдля mysqldump не требовались для включения хранимых процедур и событий при использовании параметра--all-databases: дамп включал системную базу данныхmysql, а следовательно, также таблицыmysql.procиmysql.event, содержащие определения хранимых процедур и событий. Начиная с MySQL 9.2, таблицы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]...Тип Строка Игнорировать указанные ошибки. Значение параметра представляет собой список номеров ошибок, разделенных запятыми, указывающих ошибки, которые нужно игнорировать во время выполнения mysqldump. Если также задан параметр
--forceдля игнорирования всех ошибок, приоритет имеет--force. -
--ignore-table=db_name.tbl_nameФормат командной строки --ignore-table=db_name.tbl_nameТип Строка Не дампить заданную таблицу, которая должна быть указана с использованием имен базы данных и таблицы. Чтобы игнорировать несколько таблиц, используйте этот параметр несколько раз. Этот параметр также можно использовать для игнорирования представлений.
-
Формат командной строки --ignore-viewsТип Булево Значение по умолчанию FALSEПропускает представления таблиц в дамп-файле.
-
Формат командной строки --init-command=strТип Строка Единичный оператор SQL для выполнения после подключения к серверу MySQL. Определение сбрасывает существующие операторы, определенные им или
init-command-add. -
Формат командной строки --init-command-add=strТип Строка Добавить дополнительный оператор 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Тип Булево Значение по умолчанию FALSEЭтот параметр приводит к тому, что генерируемые невидимые первичные ключи исключаются из вывода. Для получения дополнительной информации см. Раздел 15.1.21.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.10, «Ограничения на представления» для обходного пути.
© 2025 Oracle
Licensed under the GPLv2 License.