Spec-Zone .ru
спецификации, руководства, описания, API

7.4.3. Дамп Данных в Формате разграниченного текста с mysqldump

Этот раздел описывает, как использовать mysqldump, чтобы создать файлы дампа разграниченного текста. Для получения информации о перезагрузке таких файлов дампа см. Раздел 7.4.4, "Перезагружая Резервные копии Формата разграниченного текста".

Если Вы вызываете mysqldump с --tab=dir_name опция, это использует dir_name как выходной каталог и таблицы дампов индивидуально в том каталоге, используя два файла для каждой таблицы. Имя таблицы является базовым именем для этих файлов. Для названной таблицы t1, файлы называют t1.sql и t1.txt. .sql файл содержит a CREATE TABLE оператор для таблицы. .txt файл содержит табличные данные, одну строку на строку таблицы.

Следующая команда выводит содержание db1 база данных к файлам в /tmp база данных:

shell> mysqldump --tab=/tmp db1

.txt файлы, содержащие табличные данные, пишутся сервером, таким образом, они принадлежат системной учетной записи, используемой для того, чтобы выполнить сервер. Использование сервера SELECT ... INTO OUTFILE записать файлы, таким образом, Вы должны иметь FILE полномочие выполнить эту работу, и ошибку происходит если данный .txt файл уже существует.

Сервер передается CREATE определения для выведенных таблиц к mysqldump, который пишет им в .sql файлы. Эти файлы поэтому принадлежат пользователю, который выполняет mysqldump.

Это является лучшим это --tab используйтесь только для дампа локального сервера. Если Вы используете это с удаленным сервером, --tab каталог должен существовать на обоих локальные и удаленные узлы, и .txt файлы будут записаны сервером в удаленном каталоге (на узле сервера), тогда как .sql файлы будут записаны mysqldump в локальном каталоге (на хосте клиента).

Для mysqldump - вкладка, сервер значением по умолчанию пишет табличные данные в .txt регистрирует одну строку на строку с вкладками между значениями столбцов, никакими кавычками вокруг значений столбцов, и новой строкой как разделитель строки. (Они - те же самые значения по умолчанию что касается SELECT ... INTO OUTFILE.)

Чтобы позволить файлам данных быть записанными, используя различный формат, mysqldump поддерживает эти опции:

В зависимости от значения Вы определяете для любой из этих опций, могло бы быть необходимо на командной строке заключить в кавычки или выйти из значения соответственно для Вашего интерпретатора команд. Альтернативно, определите значение, используя шестнадцатеричную нотацию. Предположите, что Вы хотите, чтобы mysqldump заключил значения столбцов в кавычки в пределах двойных кавычек. Чтобы сделать так, определите двойную кавычку как значение для --fields-enclosed-by опция. Но этот символ является часто особенным для интерпретаторов команд и должен быть обработан особенно. Например, на Unix, можно заключить двойную кавычку в кавычки как это:

--fields-enclosed-by='"'

На любой платформе можно определить значение в шестнадцатеричном:

--fields-enclosed-by=0x22

Распространено использовать несколько из опций форматирования данных вместе. Например, чтобы вывести таблицы в разделенных от запятой значениях форматируют со строками, завершенными парами возврата каретки/новой строки (\r\n), используйте эту команду (введите ее в одну строку):

shell> mysqldump --tab=/tmp
        --fields-terminated-by=,         --fields-enclosed-by='"'
        --lines-terminated-by=0x0d0a db1

Если Вы используете любую из опций форматирования данных, чтобы вывести табличные данные, Вы должны будете определить тот же самый формат, когда Вы перезагрузите файлы данных позже, чтобы гарантировать правильную интерпретацию содержания файла.