Базы данных dump: Что такое дамп базы данных MySQL и как его сделать?
Как создать дамп базы данных
Резервная копия базы данных никогда не будет лишней. Процесс создания копии базы отличается в зависимости от того, используете ли вы панель управления на сервере.
Сервер с панелью управления ISPmanager
ISPmanager даёт возможность работать с сервером баз данных через графический интерфейс — создавать, удалять базы, настраивать пользователей и привилегии. Сюда же входит возможность скачивания и разворачивания дампов — через саму панель ISPmanager или устанавливаемый в наборе с ней phpMyAdmin.
ISPmanager
Чтобы скачать дамп базы сайта из ISPmanager, откройте раздел Инструменты — Базы данных.
В списке баз выберите ту, дамп которой вам нужен, и сверху нажмите «Скачать». Здесь же доступна загрузка своего дампа («Закачать») или восстановление из локальной копии («Локальный дамп»).
phpMyAdmin
Также выполнить экспорт базы можно через панель phpMyAdmin — она устанавливается в сборке ISPmanager.
Откройте раздел Инструменты — Базы данных, выберите нужную базу в списке и нажмите «Перейти».
Вы будете автоматически авторизованы в phpMyAdmin под пользователем, которому принадлежит выбранная база данных. Чтобы скачать дамп, перейдите в раздел «Экспорт»:
Здесь можно выбрать метод экспорта: быстрый — с минимумом настроек, или обычный — полностью настраиваемый экспорт, и нажать «Вперёд» — скачается дамп вашей базы данных.
Если вы хотите экспортировать через phpMyAdmin все базы разом, нужно авторизоваться под пользователем root сервера баз данных. Для этого перейдите в панель ISPmanager — Настройки — Серверы баз данных, выберите ваш сервер БД, сверху «Изменить»:
Здесь вам понадобится пароль пользователя root.
Скопируйте его и перейдите в раздел Доп. приложения — phpMyAdmin. Для входа в панель используйте логин root и скопированный пароль.
Таким образом вы получите полный доступ к серверу баз данных и сможете экспортировать все базы разом.
Сервер без панели управления
Если ваш сервер настроен вручную, способ создания дампа зависит от того, какие инструменты вы используете для работы. Например, если вы управляете базами данных через тот же phpMyAdmin, тогда можно выполнить экспорт с его помощью по инструкции выше. Если же нет, тогда можно воспользоваться его альтернативой — скриптом Adminer, или сделать дамп по старинке, вручную через утилиту mysqldump.
Adminer
Админер — это php-скрипт, который предоставляет все основные возможности для управления базами данных сайта через графический интерфейс в браузере.
Чтобы начать работать с ним, достаточно скачать его с официального сайта на сервер и открыть в браузере:
Скачиваем скрипт на сервер в корневую папку нашего сайта:
wget https://github.com/vrana/adminer/releases/download/v4.7.7/adminer-4.7.7.php
Ссылку на актуальную версию скрипта можно найти на официальном сайте.

Настраиваем права доступа на скачанный скрипт:
chmod 644 adminer-4.7.7.php
Открываем загруженный скрипт в браузере по адресу:
https:// [ваш домен или IP-адрес]/adminer-4.7.7.php
После таких нехитрых манипуляций откроется интерфейс для управления базами данных. Для авторизации вам потребуются:
- имя пользователя базы данных
- пароль пользователя базы данных
- название базы данных
Чтобы создать дамп базы, после подключения в меню слева выберите «Экспорт»:
Выберите, какие данные хотите включить в дамп.
Чтобы скачать дамп, в строке «Выходные данные» выберите пункт «Сохранить» и нажмите «Экспорт»: дамп будет загружен на ваш компьютер.
Ручной дамп базы
Создать дамп базы вручную можно одной командой:
mysqldump -u db-username -p db-name > dump.sql
где db-username — имя пользователя базы данных, db-name — название базы данных, dump. — имя файла, в который будет записан дамп. Система запросит пароль указанного пользователя базы и запишет дамп в текущую рабочую директорию на сервере.
sql
Если нужно скачать несколько баз, можно использовать модифицированную версию команды:
mysqldump -u root -p --databases db-name1 db-name2 db-name3 > dump.sql
А так можно сделать дамп сразу всех баз данных:
mysqldump -u root -p --all-databases > full-dump.sql
После создания дампа останется только скачать его, подключившись к серверу, например, по sFTP. Или можно сделать это быстрее, через консоль — с помощью scp. Эта утилита позволяет копировать файлы между хостами. Для доступа к удалённому хосту потребуются его IP-адрес, имя пользователя и пароль.
Синтаксис команды прост:
scp -pr [откуда и что копировать] [куда копировать и как сохранить]
Опция -r отвечает за рекурсивное копирование директорий. Пригодится, если нужно передать папку с файлами и подкаталогами.
Параметр -p позволяет при передаче сохранить время последнего изменения файла, время последнего чтения файла и его атрибуты.
Если нужно передать файл dump.sql с текущего сервера на удалённый, команда примет такой вид:
scp /root/dump.sql [email protected]:/root
Здесь /root/dump.sql — путь к передаваемому файлу на текущем сервере. [email protected]:/root — данные для подключения к удалённому хосту (пользователь root, сервер 188.120.228.62) и путь, куда нужно сохранить передаваемый файл (/root).
Если файл с сервера нужно скопировать не на сервер, а на ваш компьютер, запускать утилиту лучше с него (например, на Windows 10 — через Windows PowerShell). Вот так можно скопировать файл dump.sql, хранящийся в папке /root на сервере 188.120.228.62, на компьютер с ОС Windows в домашнюю папку вашего пользователя (.):
scp -p [email protected]:/root/dump.sql .
С помощью следующей команды можно добиться обратного результата — дамп dump-dump.sql будет загружен с вашего компьютера на сервер 188.120.228.62 в папку /root:
scp -p ./dump-dump.sql [email protected]:/root
Дамп базы данных MySQL — Как сделать и перенести БД — Wiki HOSTiQ.ua
Данная статья может оказаться полезной, если у вас есть веб-сайт, который использует систему управления контентом (Joomla, WordPress, OpenCart и т.д.), и вы решили перенести его на другой сервер. Для этого требуется не только перенос файлов сайта, но и перенос базы данных. Перед тем, как приступить к переносу веб-сайта, необходимо подобрать хороший хостинг для сайта и заказать его, чтобы получить доступ к новому хостинговому аккаунту. Мы, например, предлагаем отдельный хостинг WordPress, Joomla и PrestaShop. Если вы хотите перенести сайт на новое имя и вам нужно купить домен, не торопитесь.
Наш план виртуального хостинга S4 предоставит вам домен и Comodo сертификат SSL в подарок. Если для вашего сайта недостаточно виртуального хостинга, вы всегда можете заказать VPS или выделенный сервер.
Стабильный хостинг с поддержкой 24/7
Разместите сайт у нас и мы всегда придём на помощь, если она вдруг понадобится. Даже если вопрос возникнет ночью или в праздники, служба поддержки ответит быстро и поможет найти решение любой проблемы.
Посмотреть тарифы
Создание дампа базы данных в PhpMyAdmin
Для переноса базы данных необходимо сначала создать ее дамп, то есть разместить содержимое в отдельный sql-файл. Делается это в меню phpMyAdmin на хостинге, откуда вы переносите сайт. Зайдите в phpMyAdmin, выделите слева базу данных, которую необходимо перенести, и нажмите на кнопку «Экспорт» в верхнем меню.
Откроется диалоговое окно, в котором обязательно выберите тип базы SQL, после чего нажмите кнопку ОК. Дождитесь пока файл базы данных скачается на ваш компьютер.
Создание пользователя БД MySQL
Теперь этот файл необходимо корректно разместить на нашем хостинге. Для этого необходимо сначала создание базы данных MySQL в cPanel аккаунте, добавление к ней пользователя и назначение ему привилегии. Ниже по порядку расписано, как создать базу данных в MySQL.
Зайдите в cPanel и найдите раздел «Базы данных», выберите «Мастер баз данных MySQL».
Откроется новое окно. На шаге 1 введите имя базы. Обратите внимание на то, что имя БД всегда будет с префиксом, первая половина имени будет содержать в себе имя cPanel аккаунта.
После ввода имени нажмите на кнопку «Следующий шаг».
На шаге 2 необходимо создать пользователя MySQL к базе и задать пароль для него. После ввода всех данных нажмите кнопку «Создать пользователя».
При настройке привилегий созданного пользователя выберите опцию «ВСЕ ПРАВА» и переходите к следующему шагу.
Если в предыдущих шагах все было сделано правильно, мастер баз данных оповестит вас об успешном завершении создания БД на хостинге.
Созданную БД вы теперь сможете найти в списке доступных баз MySQL в одноименном меню контрольной панели.
Восстановление БД из дампа в PhpMyAdmin
Теперь для восстановления базы данных MySQL импортируем в созданную базу содержимое сохраненного со старого хостинга файла с расширением .sql. Для этого на главной странице cPanel выберите пункт меню “phpMyAdmin” в том же разделе “Базы данных”. В открывшемся окне в меню слева выберите только что созданную БД и нажмите на вкладку «Импорт» в верхнем меню.
Нажмите кнопку «Выберите файл», в диалоговом окне выберите ранее сохраненный sql-файл и загрузите его на хостинг. Убедитесь, что выбран тип кодировки utf-8. После нажатия кнопки ОК дождитесь сообщения об успешном импорте базы данных.
На этом все действия, необходимые для переноса базы данных на другой качественный хостинг, выполнены.
Читайте также:
Помогла ли эта статья решить вашу проблему?
Ваш ответ поможет улучшить статьи в будущем.
Правильный экспорт MySQL (Dump базы данных)
- Что такое MySQL
- Как создать базу данных?
- Настройка и управление
- Логин\пароль: где узнать и как восстановить?
- Экспорт MySQL (Dump базы данных)
- Импорт MySQL
- Ограничения БД
- Ошибки
Что такое дамп базы данных?
Это файл, в который сохраняется копия базы данных MySQL. Данные из этого дампа можно использовать для заполнения пустой БД (смена хостинга или перенос сайта с Денвера) или изменения существующей базы данных (используется для бэкапов). Чаще всего этот файл имеет расширение .sql.
Как экспортировать базу данных MySQL?
Обычно экспорт базы данных (создание дампа) производится с помощью интерфейса phpMyadmin. И далее мы подробно разберем несколько шагов:
- В панели управления хостингом, находим phpMyadmin. Чаще всего он находится в разделе «Базы данных» или подобном.

- Слева в углу выберите свою базу данных (ту, которую вы собираетесь экспортировать на компьютер, чтобы потом перенести на другой хостинг).
- Жмем вкладку “Экспорт”.
- Возможно вас попросят выбрать способ экспорта “Обычный” (много настроек) или “Быстрый” (мало настроек). Не имеет значения какой выбирать, главное изменить только те настройки, которые мы описываем ниже.
- Нужно выбрать все таблицы, нажав на кнопку “Выделить все”.
- Отметить галочкой “Сохранить как файл”, “Сохранить вывод в файл” или что-то подобное.
- На всякий случай, запоминаем кодировку, но не трогаем ее.
- Жмем “Ок” и сохраняем файл с БД себе на компьютер. Обычно сохраняемый файл имеет расширение .sql.
Экспорт базы данных MySQL через SSH
Есть еще один способ экспорта БД — с помощью протокола SSH. Для этого используется специальная SSH-команда:
mysqldump —user=DBUSER —password=USERPASSWORD DBNAME > DUMPFILENAME.sql
или
mysqldump -uDBUSER -pUSERPASSWORD DBNAME > DUMPFILENAME.
sql
Вместо слов написанных большими буквами подставляем:
DBUSER — имя пользователя базы данных, например uhosting_databaseuser;
USERPASSWORD — пароль пользователя БД, например Rjkweuik12;
DBNAME — имя базы данных, из которой будет производится экспорт, например uhosting_databasename;
DUMPFILENAME — имя dump-файла, в который будет производится экспорт. Здесь можно указать путь куда будет сохранен дамп-файл, но лучше этого не делать, и просто забрать файл с сервера хостинг-провайдера.
Дамп БД MySQL | Инструмент для резервного копирования MySQL
Резервное копирование БД MySQL с помощью графического интерфейса
Следующий пример показывает выполнение резервного копирования БД MySQL с помощью
графического интерфейса.
1. Щелкните правой кнопкой мыши в окне Проводник и выберите опцию Резервная копия → Создать резервную копию БД.
Откроется окно Мастер резервирования БД
2. На вкладке «Общие» укажите соединение, базу данных для создания резервной
копии, а также название итогового файла. Щелкните Далее.
3. Выберите содержимое для создания резервной копии. Щелкните Далее.
4. Укажите подробные опции создания резервной копии MySQL. Щелкните Далее.
5. Настройте опции Обработка ошибок и Лог-файла. Щелкните Выполнить
для создания резервной копии MySQL.
6. Щелкните Выполнить.
Как запланировать создание резервной копии MySQL?
Иногда вам может понадобиться настроить автоматическое
Создание резервных копий БД MySQL.
Для этого вы должны, прежде всего, создать файл проекта,
содержащий настройки резервного копирования, с помощью мастера резервного копирования
MySQL. Создав файл проекта, вы должны будете запланировать задачу Windows, которая
будет выполняться в определенное время или при выполнении определенного условия.
1. Выполните шаги 1-5 выше. Щелкните Сохранить проект.
2. Выбрав все необходимые опции для резервного копирования и сохранив проект, запустите
Планировщик задач в Windows.
3. Выберите Действие → Создать простую задачу в верхнем меню.
4. Укажите имя для новой задачи. Щелкните Далее.
5. Выберите одну из опций для запуска задачи создания резервной копии MySQL. Щелкните
Далее.
6.
Выберите время и частоты для запуска задачи. Щелкните Далее.
7. Выберите Запустить программу и щелкните Далее.
8. Укажите путь к файлу dbforgemysql.com в поле Программа или сценарий.
(По умолчанию задан путь «C:\Program Files\Devart\dbForge Studio for MySQL\dbforgemysql.com»)
Также, не забудьте указать следующие аргументы в поле Добавить аргументы:
/backup /connection:»User Id=root;Host=db;Port=3309;Database=sakila;Character
Set=utf8;» /projectfile:»C:\Users\Documents\dbForge Studio for MySQL\Export\sakila.backup»
9. Проверьте все настройки еще раз и, если изменения не требуются, щелкните Завершить.
В противном случае, щелкните Назад и внесите необходимые изменения.
Наш Мастер резервного копирования MySQL поможет вам избежать потери
данных.
Всего за несколько простых шагов вы сможете создавать копии баз данных целиком
или только избранных объектов, настолько же быстро и просто восстанавливая их в
дальнейшем.
PgSQL-как импортировать дамп базы данных только тогда, когда база данных полностью пуста?
Прецедент на самом деле автоматизировать это с ansible . Я хочу импортировать дамп базы данных только тогда, когда база данных полностью пуста (нет таблиц внутри). Конечно, всегда есть способ выполнить оператор sql, но это последнее средство, я считаю, что для этого должно быть более элегантное решение.
pg_restore руководство не предоставляет эту опцию, насколько я вижу.
Вот как я планирую сделать это с ansible:
- name: db_restore | Receive latest DB backup
shell: s3cmd --skip-existing get `s3cmd ls s3://{{ aws_bucket }}/ | grep sentry | tail -1 | awk '{print $4}'` sql.
latest.tgz
args:
chdir: /root/
creates: sql.latest.tgz
- name: db_restore | Check if file exists
stat: path=/root/sql.latest.tgz
register: sql_latest
- name: db_restore | Restore latest DB backup if backup file found
shell: PGPASSWORD={{ dbpassword }} tar -xzOf /root/sentry*.tgz db.sql | psql -U{{ dbuser }} -h{{ pgsql_server }} --set ON_ERROR_STOP=on {{ dbname }}
when: sql_latest.stat.exists
ignore_errors: True
В идеале это должно проверить, если DB пустой. Для этой цели не существует модуля ansible. Google тоже молчит.. Текущее решение на самом деле также работает, это даст ошибку, когда импорт не удастся, и я могу просто игнорировать ошибку, но немного больно видеть ложную тревогу.
postgresql
ansible
database-backups
Поделиться
Источник
holms
30 марта 2015 в 02:53
3 ответа
- mysql-как импортировать дамп базы данных с числовыми именами таблиц
Я пытаюсь создать дамп и импортировать базу данных, которая имеет только числовые имена таблиц.
Я мало что могу сделать с Соглашением об именовании, и я знаю, что оно не должно быть числовым, но так оно и есть! Проблема у меня есть в том, что демпинг в порядке, но когда я пытаюсь импортировать… - Получение неопределенного значения, когда база данных пуста
У меня возникла проблема с моим мобильным приложением, и я не знаю, как ее решить. когда я нажимаю кнопку, которая получает данные из базы данных, я анализирую их в json, и когда я хочу использовать их в своем приложении, я получаю неопределенное. Мотыгой я могу сделать так, чтобы мне не досталось…
5
На самом деле нет такой вещи, как «empty» как таковой; он обычно имеет встроенные типы, язык PL/PgSQL по умолчанию и т. д., Даже если вы создаете из template0 . Если вы создадите из другого шаблона, там может быть намного больше.
PostgreSQL не сохраняет запись первой записи без шаблона в DB, поэтому вы также не можете сказать «changed since created».
Вот почему нет опции --if-empty для pg_restore . Это действительно не имеет смысла.
Безусловно, лучший вариант-выполнить psql для запроса information_schema и определить, есть ли какие-либо таблицы в схеме public . Или, что еще лучше, запрос на наличие определенных таблиц и типов, которые вы знаете, будет создан дампом.
напр.
psql -qAt mydbname -c "select 1 from information_schema.tables where table_schema = 'public' and table_name = 'testtable';"
Затем вы можете проверить нулевые / ненулевые строки, возвращенные в stdout. Или оберните его в SELECT EXISTS(...) , чтобы получить логическое значение из psql . Или используйте блок DO , который ERROR s, Если таблица существует, если вам нужен нулевой / ненулевой статус выхода из psql .
Поделиться
Craig Ringer
30 марта 2015 в 04:48
3
Чтобы считать базу данных пустой, мы должны знать, что там ничего не было добавлено с момента создания.
Поскольку postgres не отслеживает это (как уже упоминалось @Craig Ringer), я рекомендую другой подход в отношении ansible.
Итак, просто используйте механизм обработчика, например:
- name: Create zabbbix postgres DB
postgresql_db: name="{{zabbix_db_name}}"
notify:
- Init zabbix database
Поделиться
Hubbitus
21 июля 2015 в 15:12
2
Поскольку трудно сказать, является ли база данных «empty», как объясняют другие, гораздо проще проверить, существует ли база данных, а затем создать и восстановить в один шаг. Я делаю это вот так:
- name: Check my_database database already exists
become: yes
become_user: postgres
shell: psql -l | grep my_database
ignore_errors: true
register: my_database_db_existence
- debug: var=my_database_db_existence
- name: Copy backup of the my-database database
shell: your-s3-command here
when: my_database_db_existence | failed
- name: Restore my_database database on first run
become_user: postgres
shell: createdb -O my_user my_database && psql -d my_database -f /path/to/my_dump.
sql
when: my_database_db_existence | failed
P.S. Также написано подробное сообщение в блоге , объясняющее каждую задачу ansible в реализации.
Поделиться
geekQ
19 января 2017 в 16:35
- Как импортировать дамп neo4j в текущую базу данных
Я могу получить дамп текущей базы данных следующим образом: neo4j-shell -c dump > dump.sql Теперь, как я могу импортировать этот файл дампа в другую базу данных (используя shell)
- Как импортировать дамп базы данных с двоичными файлами
Мне нужно импортировать базу данных в phpmyadmin. Но проблема в том, что создателям базы данных пришла в голову замечательная идея поместить в нее несколько двоичных файлов. (Поле имеет тип tinyblop) когда я читаю дамп в notepad++, у меня есть что-то вроде: Так что есть специальные символы,…
Похожие вопросы:
SQL чтобы проверить, если база данных пуста (нет таблиц)
Мне нужно проверить, полностью ли пуста база данных (без таблиц), используя запрос SQL.
Как это можно сделать? Спасибо за помощь!
Msg 3151: база данных, которая была сброшена, не была спокойна, когда был выполнен дамп
Я работаю над загрузкой дампов базы данных на новый сервер ASE, но когда я пытаюсь загрузить дампы 15 Гб и 32 ГБ в базу данных, я получаю следующую ошибку: Msg 3151, Уровень 16, Состояние 2: Сервер…
Как определить, если база данных postgresql пуста правильный путь
РЕДАКТИРОВАТЬ: Ответ, который появляется в первом поиске в stackoverflow, потенциально опасен и неверен для postgresql. Я был укушен им и удалил базу данных, которая на самом деле была заполнена…
mysql-как импортировать дамп базы данных с числовыми именами таблиц
Я пытаюсь создать дамп и импортировать базу данных, которая имеет только числовые имена таблиц. Я мало что могу сделать с Соглашением об именовании, и я знаю, что оно не должно быть числовым, но так…
Получение неопределенного значения, когда база данных пуста
У меня возникла проблема с моим мобильным приложением, и я не знаю, как ее решить.
когда я нажимаю кнопку, которая получает данные из базы данных, я анализирую их в json, и когда я хочу использовать…
Как импортировать дамп neo4j в текущую базу данных
Я могу получить дамп текущей базы данных следующим образом: neo4j-shell -c dump > dump.sql Теперь, как я могу импортировать этот файл дампа в другую базу данных (используя shell)
Как импортировать дамп базы данных с двоичными файлами
Мне нужно импортировать базу данных в phpmyadmin. Но проблема в том, что создателям базы данных пришла в голову замечательная идея поместить в нее несколько двоичных файлов. (Поле имеет тип…
Загрузить дамп базы данных в базу данных postgres
У меня есть дамп базы данных около 270 МБ, который я хочу загрузить в свою локальную базу данных postgres. Я ввел следующую команду: pg_dump databasename < dumpfile.sql После чего я получаю: —…
MAMP Pro: после обновления до 4 база данных пуста
После обновления с MAMP 3 до 4 вся база данных полностью пуста.
В appsolute / MAMP PRO / db есть две папки: mysql с моими базами данных и mysql56, который почти пуст. Как я могу получить свои базы…
Как импортировать дамп базы данных PostgreSQL через узел и pg
Я пытаюсь импортировать дамп базы данных PostgreSQL, сохраненный как обычный текстовый файл,в psql, используя пакет pg в узле. до сих пор я читаю в файле как строку, а затем пытаюсь импортировать…
Создать/развернуть дамп MySQL БД
Как веб разработчику, мне часто приходится создавать и разворачивать дампы баз данных, и в основном это MySQL. В данной заметке я оставлю частые задачи по работе с дампами MySQL БД. На вскидку, при развертывании InnoDB таблицы ~ 1GB уходит около получаса. Если вам нужно засечь время создания/восстановления дампа — используйте команду time (time mysql ...).
Создание дампа MySQL базы
Создать полный дамп MySQL:
mysqldump -uroot --all-databases --routines --triggers -p > mysql.
dumpСоздать и сжать дамп БД:
mysqldump -uroot -proot DATABASE | gzip > ./db.sql.gzСоздать дамп структуры MySQL:
mysqldump -u%user% -p%pass% --no-data db_name > db_name.dumpСжать SQL дамп:
gzip --best < db_name.sql > db_name.sql.gzИсключить таблицы юзеров WP:
mysqldump -uUSER -pPASS --ignore-table=blog.wp_users --ignore-table=blog.wp_usermeta blog > blog_without_users.sqlСоздать полный дамп БД — каждая БД в отдельном архиве (shell-скрипт):
#!/bin/bash
dblist=`mysql -u%user% -p%pass% -e "show databases" | sed -n '2,$ p'`
for db in $dblist; do
mysqldump -u%user% -p%pass% --routines --triggers $db | gzip --best > $db.sql.gz
doneВосстановление дампа MySQL БД
Восстановить MySQL дамп:
mysql -uUSER -hlocalhost -pPASS DB_NAME < /path/dump.sqlВосстановить MySQL дамп из zip архива:
unzip -p dump.
sql.zip | mysql -u root -p%pass% database%Восстановить .sql.gz дамп:
gunzip -c dump.sql.gz | mysql -uroot -hlocalhost -p%pass% %database%Выдернуть конкретную таблицу из общего дампа:
awk '/CREATE TABLE `table_name`/,/UNLOCK TABLES/' db_name.dump#mysqldump, #db dump, #restore database
Как сделать дамп базы данных MySQL
Любой кто начинает работать с MySQL может столкнуться с необходимостью создать полную копию базы данных, тоесть дамп. Чаще всего это необходимо для того чтобы скопировать ВСЮ структуру базы и иногда саими данные. Также дамп часто используется для того чтобы восстановить базу данных в случае «поломки»
Команда mysqldump — создание дампа
Для того чтобы создать дамп — командная строка выглядит так:
mysqldump -uUSER -pPASSWORD DB_NAME > FILE_NAME_TO_SAVE
Где
- -uUser — имя пользователя базы в формате типа -u[root]
- -pPassword — пароль пользователя в формате типа -p[123456]
- DB_NAME — имя базы данных
- FILE_NAME_TO_SAVE — куда сохранять дамп
В идеале ни имя пользователя ни пароль где либо сохранять не стоит, система сама спросит под кем логиниться.
Так что простой вариант команды следующий:
mysqldump -u -p DB_NAME > FILE_NAME_TO_SAVE
Пример:
mysqldump -uroot -p123456 mydb > dump.sql
Эта комбинация создаст файл dump.sql в той папке в которой вы выполняете команду.
Пакуем в zip:
zip ./dump.zip ./dump.sql
или в tar.gz:
tar -pczf ./dump.tar.gz ./dump.sql
Как восстановить базу данных из дампа
Теперь сделаем восстановление базы данных из дампа.
Для восстановления используем командный интерпретатор MySQL — команду с одноименным названием:
mysql -uUSER -pPASSWORD -f mydb < mydb_dump.sql
Часть < dump.sql отвечает за «закидывание» файла с SQL командами дампа в интерпретатор.
Пример:
mysql -uroot -p123456 -f mydb < dump.sql
Для того чтобы указать кодировку данных в дампе нужно использовать ключ —default-character-set:
mysql -uroot -p123456 -f --default-character-set=cp1251 mydb < dump.sql
Вот и вся магия
7.4.1 Выгрузка данных в формате SQL с помощью mysqldump
7.4.1 Выгрузка данных в формате SQL с помощью mysqldump
В этом разделе описывается, как использовать mysqldump .
для создания файлов дампа в формате SQL. Для информации о перезагрузке
такие файлы дампа см.
Раздел 7.4.2, «Повторная загрузка резервных копий в формате SQL».
По умолчанию mysqldump записывает информацию как
SQL-операторы в стандартный вывод. Вы можете сохранить вывод
в файле:
оболочка> mysqldump [ аргументов ]> имя_файла Чтобы выгрузить все базы данных, вызовите mysqldump с
параметр --all-databases :
оболочка> mysqldump --all-databases> dump.sql Чтобы выгрузить только определенные базы данных, назовите их в командной строке
и использовать - базы данных
вариант:
оболочка> mysqldump --databases db1 db2 db3> dump.
sql Параметр --databases вызывает
все имена в командной строке должны рассматриваться как имена базы данных.
Без этой опции mysqldump обрабатывает
имя как имя базы данных и следующие за таблицей
имена.
С - все-базы данных или
- базы данных ,
mysqldump пишет CREATE и
БАЗА ДАННЫХ ИСПОЛЬЗУЙТЕ
операторы перед выводом дампа для каждой базы данных. Эта
гарантирует, что при перезагрузке файла дампа создается каждый
база данных, если она не существует, и делает ее базой данных по умолчанию
поэтому содержимое базы данных загружается в ту же базу данных из
которые они пришли.Если вы хотите, чтобы файл дампа заставлял
удаление каждой базы данных перед ее воссозданием, используйте
--add-drop-database вариант как
хорошо.
В этом случае mysqldump записывает
DROP DATABASE предшествующий оператор
каждый оператор CREATE DATABASE .
Чтобы выгрузить отдельную базу данных, назовите ее в командной строке:
оболочка> mysqldump - тест баз данных> dump.sql В случае с единой базой данных допустимо опускать
- базы данных вариант:
оболочка> mysqldump test> dump.sql Разница между двумя предыдущими командами заключается в том, что
без - базы данных , дамп
вывод не содержит CREATE или
БАЗА ДАННЫХ ИСПОЛЬЗОВАТЬ
заявления. Это имеет несколько последствий:
При перезагрузке файла дампа необходимо указать значение по умолчанию.
имя базы данных, чтобы сервер знал, какую базу данных
перезагрузить.
Для перезагрузки вы можете указать имя базы данных другое
от исходного имени, что позволяет перезагрузить данные
в другую базу данных.Если база данных для перезагрузки не существует, вы должны
сначала создайте его.Поскольку вывод не содержит
CREATEоператор
DATABASE
- параметр add-drop-database
не имеет никакого эффекта. Если вы его используете, он не дает
DROP DATABASEзаявление.
Чтобы выгрузить только определенные таблицы из базы данных, назовите их на
командная строка после имени базы данных:
оболочка> mysqldump test t1 t3 t7> dump.sql 4.5.4 mysqldump — Программа резервного копирования базы данных
4.5.4
mysqldump — Программа резервного копирования базы данных
Клиентская утилита mysqldump выполняет
логические резервные копии,
создание набора операторов SQL, которые могут быть выполнены для
воспроизвести исходные определения объектов базы данных и таблицу
данные.
Он выгружает одну или несколько баз данных MySQL для резервного копирования или
перенос на другой SQL-сервер. mysqldump
команда также может генерировать вывод в CSV, другом тексте с разделителями,
или в формате XML.
Подсказка
Рассмотрите возможность использования утилит дампа MySQL Shell, которые обеспечивают параллельный дамп с несколькими потоками, сжатие файлов и отображение информации о ходе выполнения, а также облачные функции, такие как потоковая передача Oracle Cloud Infrastructure Object Storage, а также проверки и модификации совместимости службы баз данных MySQL. Дампы можно легко импортировать в экземпляр сервера MySQL или систему БД службы баз данных MySQL с помощью утилит загрузки дампа MySQL Shell. Инструкции по установке MySQL Shell можно найти здесь.
mysqldump требует как минимум
SELECT привилегия для сброса
столы, SHOW VIEW для самосвальных
просмотров, TRIGGER для сброса
триггеры, ТАБЛИЦЫ БЛОКИРОВКИ , если
- опцион на одну транзакцию
не используется и (начиная с MySQL 8.
0.21)
ПРОЦЕСС , если
- no-tablespaces опция
не используется. Для некоторых параметров могут потребоваться другие привилегии, например
указано в описании опций.
Чтобы перезагрузить файл дампа, у вас должны быть права, необходимые для
выполнить содержащиеся в нем операторы, такие как соответствующие
СОЗДАТЬ привилегий для объектов, созданных
те заявления.
mysqldump вывод может включать
ALTER DATABASE утверждает, что
изменить параметры сортировки базы данных. Их можно использовать при сбросе
сохраненные программы для сохранения их кодировки символов.Перезагрузить
файл дампа, содержащий такие утверждения,
ALTER привилегия для уязвимой базы данных
требуется.
Заметка
Дамп, сделанный с помощью PowerShell в Windows, с выводом
перенаправление создает файл с кодировкой UTF-16:
оболочка> mysqldump [параметры]> dump.
sql Однако UTF-16 не допускается в качестве набора символов подключения.
(увидеть
Недопустимые наборы символов клиента),
поэтому файл дампа не может быть загружен правильно.Чтобы обойти
в этой проблеме используйте параметр --result-file ,
который создает вывод в формате ASCII:
оболочка> mysqldump [параметры] --result-file = dump.sql Вопросы производительности и масштабируемости
mysqldump преимущества включают удобство
и гибкость просмотра или даже редактирования вывода перед
восстановление. Вы можете клонировать базы данных для разработки и работы DBA,
или создать небольшие вариации существующей базы данных для
тестирование.Он не предназначен в качестве быстрого или масштабируемого решения для
резервное копирование значительных объемов данных. При больших размерах данных
даже если этап резервного копирования занимает разумное время, восстановление
данные могут быть очень медленными, потому что воспроизведение операторов SQL
включает дисковый ввод-вывод для вставки, создания индекса и так далее.
Для крупномасштабного резервного копирования и восстановления
физическое резервное копирование больше
соответствующий, чтобы скопировать файлы данных в их исходном формате
которые можно быстро восстановить:
Если ваши таблицы в основном
InnoDB
столы, или если у вас есть смесьInnoDB
иMyISAM, рассмотрите возможность использования
mysqlbackup команда MySQL
Продукт Enterprise Backup.(Доступно как часть
Корпоративная подписка.) Обеспечивает максимальную производительность.
дляInnoDBрезервных копий с минимальным
срыв; он также может создавать резервные копии таблиц из
MyISAMи другие механизмы хранения; и это
предоставляет ряд удобных вариантов для размещения
различные сценарии резервного копирования.
Увидеть
Раздел 30.2, «Обзор MySQL Enterprise Backup».
mysqldump может извлекать и выгружать таблицу
содержимое строка за строкой, или он может получить все содержимое из
таблицу и буферизуют ее в памяти перед сбросом.Буферизация в
память может быть проблемой, если вы сбрасываете большие таблицы. Выгрузить
таблицы строка за строкой используйте
- опция Quick (или
- опт , что позволяет
- быстрый ). В
--opt option (и, следовательно,
--quick ) включен
по умолчанию, поэтому для включения буферизации памяти используйте
- пропустить-быстро .
Если вы используете последнюю версию
mysqldump для создания дампа для перезагрузки
на очень старый сервер MySQL, используйте
- пропустить опцию вместо
- опт или
- опция расширенной вставки .
Для получения дополнительной информации о mysqldump ,
см. Раздел 7.4, «Использование mysqldump для резервного копирования».
Синтаксис вызова
Как правило, есть три способа использования
mysqldump — для сброса набора из одного
или несколько таблиц, набор из одной или нескольких полных баз данных или
весь сервер MySQL — как показано здесь:
оболочка> mysqldump [ параметры ] db_name [ tbl_name ...]
оболочка> mysqldump [ параметры ] --databases db_name ...
оболочка> mysqldump [ параметры ] --all-databases Чтобы выгрузить целые базы данных, не называйте таблицы после
db_name , или используйте
- базы данных или
- опция для всех баз данных .
Чтобы увидеть список опций вашей версии
mysqldump поддерживает , введите команду
mysqldump —help .
Синтаксис опций — Сводка по алфавиту
mysqldump поддерживает следующие параметры:
который можно указать в командной строке или в
[mysqldump] и [клиент]
группы файла опций. Для получения информации о файлах опций
используются программами MySQL, см. Раздел 4.2.2.2, «Использование файлов параметров».
Таблица 4.14 Параметры mysqldump
Варианты подключения
Команда mysqldump выполняет вход в MySQL.
сервер для извлечения информации.Следующие параметры определяют, как
для подключения к серверу MySQL на том же компьютере или
удаленная система.
--bind-address =ip_addressНа компьютере с несколькими сетевыми интерфейсами используйте это
возможность выбрать, какой интерфейс использовать для подключения к
сервер MySQL.
- сжатие,-CСжать всю информацию, передаваемую между клиентом и
сервер, если возможно.Увидеть
Раздел 4.2.8, «Контроль сжатия соединений».Начиная с MySQL 8.0.18, эта опция устарела. Ожидайте, что это
быть удаленным в будущей версии MySQL. Увидеть
Настройка сжатия устаревших подключений.- алгоритмы сжатия =значениеРазрешенные алгоритмы сжатия для подключений к
сервер.Доступные алгоритмы такие же, как и для
протокол_сжатия_алгоритмы
системная переменная. Значение по умолчанию —
без сжатия.Для получения дополнительной информации см.
Раздел 4.2.8, «Контроль сжатия соединений».
Эта опция была добавлена в MySQL 8.0.18.
--default-auth =плагинПодсказка о том, какой плагин аутентификации на стороне клиента использовать.См. Раздел 6.2.17, «Подключаемая аутентификация».
- включить плагин открытого текстаВключить открытый текст
mysql_clear_password
плагин аутентификации. (Увидеть
Раздел 6.4.1.4, «Подключаемая аутентификация открытого текста на стороне клиента».)- получить-сервер-открытый ключЗапросить с сервера открытый ключ, необходимый для ключа RSA
парный обмен паролями.Эта опция применима к клиентам
которые подтверждают
caching_sha2_passwordаутентификация
плагин.
Для этого плагина сервер не отправляет общедоступные
ключ, если не требуется. Эта опция игнорируется для аккаунтов
которые не проходят аутентификацию с этим плагином. Это также
игнорируется, если обмен паролями на основе RSA не используется, как есть
случай, когда клиент подключается к серверу с помощью
безопасное соединение.Если
--server-public-key-path =имя_файла
задан и указывает действительный файл открытого ключа, требуется
приоритет над
- получить-сервер-открытый ключ.Для получения информации о
caching_sha2_passwordплагин, см.
Раздел 6.4.1.2, «Кэширование подключаемой аутентификации SHA-2».--host =,имя_хоста
-hимя_хостаДамп данных с сервера MySQL на указанном хосте.
В
хост по умолчанию —localhost.--login-path =имяПараметры чтения из указанного пути входа в
.mylogin.cnfфайл пути для входа. А
«Путь входа» — это группа опций, содержащая
параметры, указывающие, к какому серверу MySQL подключаться и
какой аккаунт нужно аутентифицировать как. Чтобы создать или изменить
файл пути входа, используйте
mysql_config_editor утилита.Увидеть
Раздел 4.6.7, « mysql_config_editor — Утилита настройки MySQL».Для получения дополнительной информации об этом и других файлах опций
см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».--password [=,пароль]
-p [пароль]Пароль учетной записи MySQL, используемой для подключения к
сервер.
Значение пароля указывать необязательно. Если не указано,
mysqldump запрашивает один. Если дано,
не должно быть без пробела между
--password =или
-pи следующий за ним пароль. Если нет
указана опция пароля, по умолчанию — нет
пароль.Указание пароля в командной строке должно быть
считается небезопасным. Чтобы не вводить пароль на
в командной строке используйте файл параметров.Увидеть
Раздел 6.1.2.1, «Руководство конечного пользователя по защите паролем».Чтобы явно указать, что пароля нет и что
mysqldump не должен запрашивать один, используйте
в
- пропустить пароль
вариант.- труба,-WВ Windows подключитесь к серверу с помощью именованного канала.
Эта
опция применяется только в том случае, если сервер был запущен с
named_pipeсистемная переменная
включен для поддержки соединений с именованными каналами.В дополнение
пользователь, устанавливающий соединение, должен быть членом Windows
группа, указанная
named_pipe_full_access_group
системная переменная.--plugin-dir =dir_nameКаталог, в котором нужно искать плагины. Укажите это
вариант, если
--default-authопция
используется для указания плагина аутентификации, но
mysqldump не находит.Увидеть
Раздел 6.2.17, «Подключаемая аутентификация».--port =,port_num
-Pномер портаДля соединений TCP / IP — номер порта, который нужно использовать.

--protocol = {TCP | SOCKET | PIPE | MEMORY}Транспортный протокол, используемый для подключения к серверу.Это полезно, когда другие параметры подключения обычно
приведет к использованию протокола, отличного от того, который вы хотите. Для
подробности о допустимых значениях см.
Раздел 4.2.7, «Протоколы передачи данных».--server-public-key-path =имя_файлаПуть к файлу в формате PEM, содержащему
клиентская копия открытого ключа, необходимого серверу
для обмена паролями на основе пары ключей RSA.Этот вариант
применяется к клиентам, которые проходят аутентификацию с помощью
sha256_passwordили
caching_sha2_passwordаутентификация
плагин. Этот параметр игнорируется для учетных записей, которые не
пройти аутентификацию с помощью одного из этих плагинов.
Это также игнорируется
если обмен паролями на основе RSA не используется, как это имеет место
когда клиент подключается к серверу с помощью безопасного
подключение.Если
--server-public-key-path =имя_файла
задан и указывает действительный файл открытого ключа, требуется
приоритет над
- получить-сервер-открытый ключ.Для
sha256_passwordэтот параметр применяется
только если MySQL был построен с использованием OpenSSL.Для получения информации о
sha256_password
иcaching_sha2_passwordплагины, см.
Раздел 6.4.1.3, «Подключаемая аутентификация SHA-256» и
Раздел 6.4.1.2, «Кэширование подключаемой аутентификации SHA-2».--socket =,путь
-SпутьДля подключений к
localhost, Unix
файл сокета для использования, или, в Windows, имя названного
труба для использования.
В Windows этот параметр применяется, только если сервер был
начал с моделиnamed_pipe
системная переменная включена для поддержки соединений с именованными каналами.
Кроме того, пользователь, устанавливающий соединение, должен быть участником
группы Windows, указанной
named_pipe_full_access_group
системная переменная.--ssl *Параметры, начинающиеся с
--sslуказывают
следует ли подключаться к серверу с помощью SSL и указать
где найти SSL-ключи и сертификаты.Увидеть
Параметры команды для зашифрованных соединений.--ssl-fips-mode = {OFF | ON | STRICT}Управляет включением режима FIPS на стороне клиента. В
--ssl-fips-modeопция
отличается от других
--ssl-ххх
варианты в том, что он не используется для установки зашифрованных
соединений, а скорее влияет на то, какие криптографические
операции, чтобы разрешить.
См. Раздел 6.8, «Поддержка FIPS».Эти
--ssl-fips-mode
допустимые значения:Заметка
Если объектный модуль OpenSSL FIPS недоступен,
только допустимое значение для
--ssl-fips-mode— это
ВЫКЛ. В этом случае установка
--ssl-fips-mode спо
ONилиSTRICTпричины
клиент для выдачи предупреждения при запуске и работы
в режиме, отличном от FIPS.--tls-ciphersuites =ciphersuite_listДопустимые наборы шифров для зашифрованных соединений, которые
используйте TLSv1.3. Значение представляет собой список из одного или нескольких
Имена шифровальных наборов, разделенных двоеточиями. Наборы шифров, которые могут
имя для этой опции зависит от библиотеки SSL, используемой для
скомпилировать MySQL.
Подробнее см.
Раздел 6.3.2, «Протоколы и шифры TLS для зашифрованного соединения».Эта опция была добавлена в MySQL 8.0.16.
--tls-version =список_протоколовДопустимые протоколы TLS для зашифрованных соединений. В
значение — это список из одного или нескольких протоколов, разделенных запятыми
имена. Протоколы, которые могут быть названы для этой опции
зависят от библиотеки SSL, используемой для компиляции MySQL. Для
подробности см.
Раздел 6.3.2, «Протоколы и шифры TLS для зашифрованного соединения».--user =,имя_пользователя
-uимя_пользователяИмя пользователя учетной записи MySQL, которое будет использоваться для подключения к
сервер.
--zstd-compress-level =уровеньУровень сжатия, используемый для подключений к серверу.
которые используют алгоритм сжатияzstd.Допустимые уровни от 1 до 22, с большими значениями.
с указанием возрастающих уровней сжатия. По умолчанию
zstdстепень сжатия 3.
установка уровня сжатия не влияет на соединения, которые
не используйте сжатиеzstd.Для получения дополнительной информации см.
Раздел 4.2.8, «Контроль сжатия соединений».Эта опция была добавлена в MySQL 8.0,18.
Параметры файла опций
Эти параметры используются для управления тем, какие файлы параметров следует читать.
--defaults-extra-file =имя_файлаПрочтите этот файл параметров после файла глобальных параметров, но (на
Unix) перед файлом пользовательских опций.
Если файл не
существует или недоступен по иным причинам, возникает ошибка.
имя_файлаинтерпретируется как относительное
в текущий каталог, если указан как относительный путь
а не полное имя пути.Для получения дополнительной информации об этом и других файлах опций
см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».--defaults-file =имя_файлаИспользуйте только указанный файл опций. Если файл не существует
или недоступен по иным причинам, возникает ошибка.
имя_файлаинтерпретируется как относительное
в текущий каталог, если указан как относительный путь
а не полное имя пути.Исключение: даже с
- файл по умолчанию, клиент
программы читают..
mylogin.cnf Для получения дополнительной информации об этом и других файлах опций
см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».--defaults-group-suffix =strЧитайте не только обычные группы опций, но и группы с
обычные имена и суффикс
ул..Например,
mysqldump обычно читает
[клиент]и
[mysqldump]групп. Если
--defaults-group-suffix = _other
задана опция, mysqldump также читает
[client_other]и
[mysqldump_other]групп.Для получения дополнительной информации об этом и других файлах опций
параметры, см.
раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».- нет значений по умолчаниюНе читайте файлы опций. Если запуск программы не удается из-за
для чтения неизвестных опций из файла опций,
- можно использовать без значений по умолчанию
чтобы предотвратить их чтение.Исключением является то, что
.mylogin.cnf
файл, если он существует, читается во всех случаях.Это позволяет
пароли следует указывать более безопасным способом, чем в команде
линия, даже когда
- по умолчанию используется.
(.mylogin.cnfсоздается
mysql_config_editor утилита. Увидеть
Раздел 4.6.7, « mysql_config_editor — Утилита настройки MySQL».)Для получения дополнительной информации об этом и других файлах опций
параметры, см.
раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».- печать по умолчаниюВыведите название программы и все параметры, которые она получает от
файлы опций.Для получения дополнительной информации об этом и других файлах опций
см. Раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».
Опции DDL
Сценарии использования mysqldump включают настройку
создать полностью новый экземпляр MySQL (включая таблицы базы данных) и
замена данных в существующем экземпляре существующим
базы данных и таблицы.Следующие параметры позволяют указать
какие вещи снести и настроить при восстановлении дампа,
кодирование различных операторов DDL в файле дампа.
--add-drop-база данныхНапишите
DROP DATABASE
оператор перед каждымCREATEзаявление.
БАЗА ДАННЫХ
Этот вариант обычно используется
в сочетании с
- все-базы данныхили
- базы данныхвариант, потому что
нетCREATE DATABASEоператоров
записываются, если не указан один из этих параметров.Заметка
В MySQL 8.0
mysql
схема считается схемой системы, которая не может быть
упал конечными пользователями. Если
--add-drop-database— это
используется с
- все-базы данныхили с
- базы данных, где
список схем для выгрузки включает
mysql, файл дампа содержит
DROP DATABASE `mysql`инструкция, которая
вызывает ошибку при перезагрузке файла дампа.Вместо этого использовать
--add-drop-database, использовать
- базы данныхсо списком
схем для выгрузки, список которых не включает
MySQL.
--добавить-выпустить-таблицуНапишите заявление
DROP TABLE
перед каждымСОЗДАТЬ ТАБЛИЦУ
заявление.- спусковой крючокНапишите
DROP TRIGGER
оператор перед каждымCREATE.
Заявление TRIGGER- все-табличные пространства,-YДобавляет в дамп таблицы все операторы SQL, необходимые для создания любых
табличные пространства, используемыеNDB
Таблица. В противном случае эта информация не включается в
вывод mysqldump . Этот вариант
в настоящее время актуально только для таблиц кластера NDB.--no-create-db,-nПодавить
CREATE DATABASE
операторы, которые в противном случае включаются в вывод, если
- базы данныхили
--all-databasesопция
данный.
--no-create-info,-tНе пишите
CREATE TABLE
операторы, которые создают каждую выгружаемую таблицу.Заметка
Эта опция не исключает , а не
операторы, создающие группы файлов журнала или табличные пространства из
mysqldump output; однако вы можете использовать
- без табличных пространств
вариант для этого.- без табличных пространств,-yЭта опция подавляет все
CREATEи
ГРУППА LOGFILEСОЗДАТЬв выводе
Операторы TABLESPACE
mysqldump .- заменитьНапишите заявления
REPLACE
вместоINSERT
заявления.
Параметры отладки
Следующие параметры печатают отладочную информацию, кодируют
отладочную информацию в файле дампа, или пусть дамп
эксплуатация продолжается независимо от возможных проблем.
- разрешить ключевые словаРазрешить создание имен столбцов, которые являются ключевыми словами. Эта
работает путем добавления имени таблицы к имени каждого столбца.- комментарии,-iЗапишите дополнительную информацию в файл дампа, например
версия программы, версия сервера и хост.Этот вариант
включен по умолчанию. Чтобы скрыть эту дополнительную информацию,
используйте--skip-comments.--debug [=,debug_options]
- #
[debug_options]Напишите журнал отладки.
Типичный
debug_optionsстрока
d: t: o,.Значение по умолчанию —имя_файла
д: т: о, / tmp / mysqldump.trace.Эта опция доступна, только если MySQL был построен с использованием
WITH_DEBUG. Выпуск MySQL
двоичные файлы, предоставляемые Oracle, — это , а не
построен с использованием этой опции.- проверка отладкиРаспечатайте некоторую отладочную информацию при выходе из программы.
Эта опция доступна, только если MySQL был построен с использованием
WITH_DEBUG. Выпуск MySQL
двоичные файлы, предоставляемые Oracle, — это , а не
построен с использованием этой опции.- отладочная информацияПечать отладочной информации, а также использования памяти и ЦП
статистика при выходе из программы.
Эта опция доступна, только если MySQL был построен с использованием
WITH_DEBUG.Выпуск MySQL
двоичные файлы, предоставляемые Oracle, — это , а не
построен с использованием этой опции.- дата дампаЕсли
- комментирует вариант
задано, mysqldump выдает комментарий на
конец дампа следующего вида:- Дамп завершен DATEОднако дата приводит к тому, что файлы дампа принимаются в разное время.
казаться разными, даже если данные
идентичный.- дата дампаи
- дата пропуска-свалки
контролировать, добавляется ли дата к комментарию. В
по умолчанию--dump-date
(укажите дату в комментарии).
- дата пропуска-свалки
подавляет печать даты.- сила,- fИгнорировать все ошибки; продолжать, даже если возникает ошибка SQL
во время сброса таблицы.Одно из применений этой опции — вызвать
mysqldump для продолжения выполнения, даже если
он встречает представление, которое стало недействительным, потому что
определение относится к таблице, которая была удалена. Без
- принудительно, mysqldump выходит
с сообщением об ошибке. С- сила,
mysqldump выводит сообщение об ошибке, но
он также записывает комментарий SQL, содержащий определение представления
на вывод дампа и продолжает выполнение.Если
--ignore-error
также предоставляется опция игнорирования конкретных ошибок,
- силаимеет приоритет.
--log-error =имя_файлаРегистрируйте предупреждения и ошибки, добавляя их в указанный файл.
По умолчанию журнал не ведется.- пропустить комментарииСм. Описание
- комментирует вариант.- вербальный,-vПодробный режим. Распечатать дополнительную информацию о том, что программа
делает.
Параметры справки
Следующие параметры отображают информацию о
mysqldump сама команда.
Параметры интернационализации
Следующие параметры изменяют способ
mysqldump Команда представляет символьные данные
с настройками национального языка.
Параметры репликации
Команда mysqldump часто используется для
создать пустой экземпляр или экземпляр, содержащий данные, на
сервер репликации в конфигурации репликации. Следующее
параметры применяются к сбросу и восстановлению данных при репликации
исходные серверы и реплики.
- приложения-подчиненные-заявленияДля дампа реплики, созданного с
- опция dump-slave, добавьте
STOP REPLICA |перед заявлением с
Заявление SLAVE
двоичные координаты журнала, а
СТАРТ РЕПЛИКАв конце вывода.
| Оператор SLAVE- удаленные мастер-журналыНа исходном сервере репликации удалите двоичные журналы с помощью
отправкаПРОДУВКА ДВОИЧНЫХ ЖУРНАЛОВ
запрос на сервер после выполнения операции дампа.
Для этого варианта требуется
ПЕРЕЗАГРУЗИТЬпривилегии, а также
привилегии, достаточные для выполнения этого оператора. Этот вариант
автоматически включает
- данные мастера.--dump-slave [=значение]Этот вариант похож на
--master-dataза исключением того, что
он используется для дампа сервера-реплики для создания файла дампа
который можно использовать для настройки другого сервера в качестве реплики,
имеет тот же источник, что и сброшенный сервер. Это вызывает дамп
вывод для включенияCHANGE REPLICATION(из MySQL 8.0,23) или
Оператор SOURCE TO
CHANGE MASTER TOзаявление
(до MySQL 8.0.23), что указывает на двоичный журнал
координаты (имя файла и положение) сброшенного
источник реплики.
ИЗМЕНЕНИЕ читает значения
Оператор REPLICATION SOURCE TO
изRelay_Master_Log_Fileи
Exec_Master_Log_Posиз
ПОКАЗАТЬи использует их для
РЕПЛИКА | SLAVE STATUS
SOURCE_LOG_FILEи
SOURCE_LOG_POSсоответственно.Эти
координаты исходного сервера репликации, из которых
реплика начинает репликацию.--dump-slaveвызывает координаты из
источник, который будет использоваться, а не сброшенные
сервер, как это делает
- опция master-data. В
кроме того, указание этой опции вызывает
--master-dataпараметр отменяется, если
используется и фактически игнорируется.Предупреждение
Этот параметр не следует использовать, если сервер, на котором
дамп будет применяться
gtid_mode = ONи
MASTER_AUTOPOSITION = 1.
Значение параметра обрабатывается так же, как и для
- данные мастера. Настройка нет
значение или 1 вызываетCHANGE REPLICATION(из MySQL 8.0.23) или
Оператор SOURCE TO
CHANGE MASTER TOзаявление
(до MySQL 8.0.23) для записи в дамп. Настройка 2
заставляет оператор быть написанным, но заключенным в SQL
Комментарии. Он имеет тот же эффект, что и
--master-dataс точки зрения включения или
отключение других опций и способ обработки блокировки.Эта опция заставляет mysqldump останавливать
репликация потока SQL перед дампом и его повторный перезапуск
после.- dump-slaveотправляет
ПОКАЗАТЬсерверу для
РЕПЛИКА | Сообщение SLAVE STATUS
получать информацию, поэтому требуются привилегии, достаточные для
выполнить это заявление.
В сочетании с
--dump-slave
- приложения-подчиненные-заявления
и
- включить-мастер-хост-порт
варианты также могут быть использованы.- включить-мастер-хост-портДля модели
ИЗМЕНИТЬ ИСТОЧНИК РЕПЛИКАЦИИ(из MySQL 8.0.23) или
Оператор TO
CHANGE MASTER TOзаявление
(до MySQL 8.0.23) в реплике дампа, созданной с
- опция dump-slave, добавить
SOURCE_HOST|
MASTER_HOSTи
SOURCE_PORT|
MASTER_PORTпараметры для имени хоста и
Номер порта TCP / IP источника реплики.--master-data [=значение]Используйте эту опцию, чтобы выгрузить исходный сервер репликации на
создать файл дампа, который можно использовать для настройки другого
сервер как реплика источника.
Это вызывает вывод дампа
для включенияИЗМЕНИТЬ ИСТОЧНИК РЕПЛИКАЦИИ(из MySQL 8.0.23) или
Оператор TO
CHANGE MASTER TOзаявление
(до MySQL 8.0.23), что указывает на двоичный журнал
координаты (имя файла и положение) выгружаемого сервера.
Это координаты исходного сервера репликации из
реплика должна начать репликацию после загрузки
файл дампа в реплику.Если значение параметра равно 2,
CHANGE|
ИСТОЧНИК РЕПЛИКАЦИИ НА
CHANGE MASTER TOзаявление
написано как комментарий SQL и поэтому носит только информативный характер; Это
не действует при перезагрузке файла дампа. Если вариант
значение 1, инструкция не записывается как комментарий и
вступает в силу при перезагрузке файла дампа. Если нет варианта
указано значение, значение по умолчанию — 1.
--master-dataотправляет
SHOW MASTER STATUS Заявление
к серверу для получения информации, поэтому он требует
привилегии, достаточные для выполнения этого оператора. Этот вариант
также требуетПЕРЕЗАГРУЗИТЬ
привилегия и двоичный журнал должны быть включены.Опция
--master-dataавтоматически
выключает--lock-tables.Также включается
- блокировать все таблицы, если только
- одинарная транзакциятакже
указывается, и в этом случае устанавливается глобальная блокировка чтения
только на короткое время в начале дампа (см.
описание для
- разовая транзакция). В
во всех случаях любое действие с журналами происходит в точный момент
свалка.Также можно настроить реплику, сбросив
существующая копия источника, используя
- вариант dump-slave, который
отменяет--master-dataи заставляет его быть
игнорируется, если используются обе опции.
--set-gtid-purged =значениеЭтот вариант предназначен для серверов, использующих репликацию на основе GTID.
(gtid_mode = ON). Он контролирует
включениеSETв выводе дампа,
@@ GLOBAL.gtid_purged
который обновляет значение
gtid_purgedна сервере
где перезагружается файл дампа, чтобы добавить набор GTID из
исходный сервер
gtid_executedсистема
переменная.gtid_purgedтрюмов
GTID всех транзакций, которые были применены к
сервер, но не существуют ни в одном двоичном файле журнала на
сервер. mysqldump поэтому добавляет
GTID для транзакций, которые были выполнены на источнике
сервер, так что целевой сервер записывает эти транзакции
как применяется, хотя в его двоичном коде их нет
журналы.
--set-gtid-purgedтакже управляет
включениеSET, который отключает
@@ СЕССИЯ.sql_log_bin = 0
ведение двоичного журнала во время перезагрузки файла дампа. Эта
оператор предотвращает создание новых GTID и
назначены транзакциям в файле дампа, поскольку они
выполняется, так что исходные GTID для транзакций
используются.Если вы не установите
--set-gtid-purged
вариант, по умолчаниюSETвключен в
@@ГЛОБАЛЬНЫЙ.Оператор gtid_purged
вывести вывод, если GTID включены на сервере, на котором вы находитесь
резервное копирование, а набор GTID в глобальном значении
gtid_executedсистема
переменная не пуста. НАБОРтакже включен
@@ SESSION.sql_log_bin = 0
если на сервере включены GTID.В MySQL 5.
6 и 5.7 вы можете заменить значение
gtid_purgedс
указанный набор GTID при условии, что
gtid_executedи
gtid_purgedпустые.От
MySQL 8.0, вы можете заменить значение
gtid_purgedс
указанный набор GTID, или вы можете добавить знак плюса (+) к
оператор для добавления указанного набора GTID к набору GTID
это уже проводится
Астрахань .
mysqldumpSETзаявление включает плюс
@@ GLOBAL.gtid_purged
знак (+) в комментарии к версии, который вступает в силу, когда
файл дампа воспроизводится в выпусках MySQL 8.0, что означает
что для этих выпусков набор GTID из файла дампа
добавлен к существующим
gtid_purgedзначение. Для
MySQL 5.6 и 5.7, значение
gtid_purgedзаменено
с GTID, установленным из файла дампа, что может произойти только
когдаgtid_executed— это
пустой набор (поэтому, когда репликация не была запущена
ранее или когда репликация ранее не использовалась
GTID).
Для получения более подробной информации о том, как SETработает, см.
Оператор @@ GLOBAL.gtid_purged
gtid_purgedописание для
выпуск, в котором должен быть воспроизведен файл дампа.Важно отметить, что значение, включенное в
mysqldump для наборазаявление включает GTID
@@ GLOBAL.gtid_purged
всех транзакций в
gtid_executedустановлен на
сервер, даже те, которые изменили подавленные части
база данных или другие базы данных на сервере, которые не были
включен в частичный дамп.Это может означать, что после
gtid_purgedзначение было
обновляется на сервере, на котором воспроизводится файл дампа, GTID
присутствуют, которые не имеют отношения к каким-либо данным о цели
сервер. Если вы больше не воспроизводите файлы дампа на
целевой сервер, посторонние GTID не вызывают никаких
проблемы с дальнейшей работой сервера, но они
затруднить сравнение или согласование наборов GTID на
разные серверы в топологии репликации.
Если вы сделаете
воспроизвести следующий файл дампа на целевом сервере, который
содержит те же GTID (например, другой частичный дамп
с того же исходного сервера), любойSETзаявление во втором дампе
@@ GLOBAL.gtid_purged
файл не работает. В этом случае либо удалите инструкцию
вручную перед воспроизведением файла дампа или вывести дамп
файл без заявления.Заметка
Для MySQL 5.6 и 5.7, не рекомендуется загружать
файл дампа, когда на сервере включены GTID
(gtid_mode = ON), если ваш
файл дампа включает системные таблицы.
mysqldump выдает инструкции DML для
системные таблицы, использующие нетранзакционный MyISAM
двигатель хранения, и эта комбинация не допускается, когда
GTID включены.Если
SET @@ GLOBAL.заявление
gtid_purged
не будет желаемого результата на вашем целевом сервере, вы
может исключить оператор из вывода, или (из MySQL
8.0.17) включите его, но закомментируйте, чтобы это не было
действует автоматически. Вы также можете включить заявление
но вручную отредактируйте его в файле дампа, чтобы добиться желаемого
результат.Возможные значения для
--set-gtid-purgedопции следующие:-
АВТО Значение по умолчанию.Если на сервере включены GTID
вы делаете резервную копию и
gtid_executedне
пусто,SET @@ GLOBAL.gtid_purgedесть
добавлен к выходу, содержащий набор GTID из
Астрахань.. Если
GTID включены,SETдобавлен в
@@ SESSION.
sql_log_bin = 0
вывод. Если GTID не включены на сервере,
операторы не добавляются к выводу.-
ВЫКЛ SET @@ GLOBAL.gtid_purgedне
добавлен к выходу, иSETне добавляется в
@@ SESSION.sql_log_bin = 0
вывод. Для сервера, где GTID не используются, используйте
этот вариант илиAUTO. Используйте только это
вариант для сервера, на котором используются GTID, если вы
убедитесь, что необходимый набор GTID уже присутствует в
gtid_purgedна
целевой сервер и не должен быть изменен, или если вы
планируйте определять и добавлять недостающие идентификаторы GTID вручную.-
НА Если на сервере, для которого выполняется резервное копирование, включены GTID,
SET @@ GLOBAL.добавлен
gtid_purged
на выход (если только
gtid_executedесть
пустой) иSETдобавлен в
@@ SESSION.sql_log_bin = 0
вывод. Ошибка возникает, если вы установите этот параметр, но
GTID не включены на сервере.Для сервера
где используются GTID, используйте эту опцию или
AUTO, если вы не уверены, что
GTID в
gtid_executedнет
необходимо на целевом сервере.-
КОММЕНТАРИРОВАНЫ Доступно в MySQL 8.0.17. Если GTID включены на
сервер, для которого выполняется резервное копирование,SETдобавлен в вывод
@@ГЛОБАЛЬНЫЙ.gtid_purged
(если толькоgtid_executed
пусто), но закомментировано.
Это значит, что
значение
gtid_executedесть
доступно на выходе, но никаких действий не предпринимается
автоматически при перезагрузке файла дампа.
SET @@ SESSION.sql_log_bin = 0- это
добавлен к выходным данным и не закомментирован.С участием
КОММЕНТАРИЙ, вы можете контролировать использование
изgtid_executed
установить вручную или с помощью автоматизации. Например, вы
может предпочесть это сделать, если вы переносите данные в
другой сервер, у которого уже есть другие активные
базы данных.
-
Параметры формата
Следующие параметры определяют, как представлять весь дамп.
файл или определенные виды данных в файле дампа.Они тоже
контролировать, записывается ли некоторая дополнительная информация в
файл дампа.
- компактныйПолучите более компактный результат. Эта опция включает
- пропустить-добавить-drop-table,
- пропустить-добавить-замки,
- пропустить комментарии,
- пропустить-отключить-ключи,
и
- пропустить набор кодов
опции.--compatible =имяПроизводить вывод, более совместимый с другой базой данных
системы или со старыми серверами MySQL. Единственный разрешенный
значение для этой опции -ansi, что имеет
то же значение, что и соответствующая опция для установки
серверный режим SQL. См. Раздел 5.1.11, «Режимы SQL сервера».- вставка в комплекте,-cИспользуйте полный
INSERT
операторы, которые включают имена столбцов.
- создать параметрыВключите все параметры таблиц, специфичные для MySQL, в
CREATE TABLEоператоров.--fields-terminated-by = ...,
- вложенные поля = ...,
--fields-optional-enclosed by = ...,
- поля-экранированные = ...Эти параметры используются с
--taboption и иметь
то же значение, что и соответствующийПОЛЯ
пункты дляДАННЫЕ НАГРУЗКИ.Увидеть
Раздел 13.2.7, «Заявление о ЗАГРУЗКЕ ДАННЫХ».- шестнадцатеричный двоичный объектДамп двоичных столбцов в шестнадцатеричной системе счисления (например,
'abc'становится
0x616263).
Затронутые типы данных:
ДВОИЧНЫЙ,
ВАРБИНАР,
BLOBтипов,
BIT, все типы пространственных данных,
и другие недвоичные типы данных при использовании с
двоичный
набор символов.- линии-завершаются-по = ...Эта опция используется с
- вкладкавариант и имеет
то же значение, что и соответствующиеЛИНИИ
пункт дляДАННЫЕ НАГРУЗКИ. Увидеть
Раздел 13.2.7, «Заявление о ЗАГРУЗКЕ ДАННЫХ».- цитаты,-QИдентификаторы котировок (например, база данных, таблица и столбец
имена) в пределах`знаков.Если
ANSI_QUOTESРежим SQL
включен, идентификаторы заключаются в кавычки в диапазоне–
символы.
Эта опция включена по умолчанию. Может быть
отключен с помощью--skip-quote-names, но это
option должен быть указан после любого варианта, такого как
- совместимый, который может
включить--quote-names.--result-file =,имя_файла
-rимя_файлаПрямой вывод в указанный файл.Файл результатов создан
и его предыдущее содержимое перезаписывается, даже если произошла ошибка
происходит при генерации дампа.Этот параметр следует использовать в Windows, чтобы предотвратить перевод строки
\ nсимволов из преобразованных в
\ r \ nпоследовательности возврата каретки / новой строки.--show-create-skip-secondary-engine =значениеИсключает пункт
ВТОРИЧНЫЙ ДВИГАТЕЛЬиз
CREATE TABLEоператоров.
Это
делает это путем включения
show_create_table_skip_secondary_engine
системная переменная на время операции дампа.
Кроме того, вы можете включить
show_create_table_skip_secondary_engine
системная переменная до использования mysqldump .Эта опция была добавлена в MySQL 8.0.18. Попытка
mysqldump работа с
--show-create-skip-secondary-engine
вариант в выпуске до MySQL 8.0,18, что не
поддержать
show_create_table_skip_secondary_engine
переменная вызывает ошибку.--tab =,dir_name
-Tdir_nameСоздавать файлы данных в текстовом формате, разделенные табуляцией.
Для каждого
выгруженная таблица, mysqldump создает
имя_таблицы.sql
файл, содержащийCREATE, который создает таблицу, и оператор
TABLE
сервер пишет
имя_таблицы.txt
файл, содержащий его данные. Значение опции - это
каталог, в который можно записать файлы.Заметка
Эту опцию следует использовать только тогда, когда
mysqldump запускается на той же машине, что и
сервер mysqld .Потому что сервер
создает в каталоге* .txtфайлов
что вы укажете, каталог должен быть доступен для записи
сервер и учетная запись MySQL, которую вы используете, должны иметь
FILEпривилегия. Потому что
mysqldump создает
* .в том же каталоге, он должен
sql
быть доступным для записи вашей системной учетной записи.По умолчанию файлы данных
.txt
форматируется с использованием символов табуляции между значениями столбца и
перевод строки в конце каждой строки.Формат можно указать
явно используя
- поля -иxxx
- линии-завершены-по
опции.Значения столбца преобразуются в указанный набор символов
посредством
- набор символов по умолчанию
вариант.--tz-utcЭта опция включает
TIMESTAMP
столбцы для сброса и перезагрузки между серверами в
разные часовые пояса. mysqldump устанавливает свое
часовой пояс подключения к UTC и добавляетSETв файл дампа.
TIME_ZONE = '+ 00:00'
Без этого
вариант,TIMESTAMPстолбцов
выгружается и перезагружается в часовых поясах, локальных для источника
и целевые серверы, что может привести к
измените, если серверы находятся в разных часовых поясах.
--tz-utcтакже защищает от изменений из-за
на летнее время.--tz-utc- это
включен по умолчанию. Чтобы отключить его, используйте
- skip-tz-utc.--xml,-XЗаписать вывод дампа как правильно сформированный XML.
ПУСТО,
'NULL'и пустые значения : для
столбец с именемимя_столбца,
NULLзначение, пустая строка и
строковое значение'NULL'выделяются
друг от друга в выводе, генерируемом этой опцией как
следует.
Значение: Представление XML: NULL( неизвестное значение )<поле name = "имя_столбца"
xsi: nil = "true" />'( пустая строка )<поле name = "column_name">'NULL'( строковое значение )<поле name = "column_name"> NULLВывод клиента mysql при запуске
используя также опцию--xml
следует предыдущим правилам.
(Увидеть
Раздел 4.5.1.1, «Параметры клиента mysql».)Вывод XML из mysqldump включает
Пространство имен XML, как показано здесь:оболочка> mysqldump --xml -u корневой мир Город xml version = "1.0"?>
.1 Кабул AFG Кабол 1780000
..
4079 Рафах PSE Рафах
Параметры фильтрации
Следующие параметры определяют, какие типы объектов схемы
записывается в файл дампа: по категориям, например по триггерам или
События; по имени, например, выбирая, какие базы данных и
таблицы для сброса; или даже фильтрация строк из данных таблицы с помощью
пункт WHERE .
- все базы данных,-AДамп всех таблиц во всех базах данных. Это то же самое, что использовать
опция--databasesи
именование всех баз данных в командной строке.До MySQL 8.0
- подпрограммыи
--событияварианты для
mysqldump и
mysqlpump не требовалось включать
сохраненные процедуры и события при использовании
- опция для всех баз данных:
В дамп включена системаmysql
база данных, а следовательно, и
MySQL.и
proc
mysql.eventтаблиц, содержащих сохраненные
определения правил и событий. Начиная с MySQL 8.0,
mysql.eventи
mysql.procтаблицы не используются.
Определения соответствующих объектов хранятся в данных
таблицы словаря, но эти таблицы не выгружаются. Чтобы
включить сохраненные процедуры и события в дамп, созданный с помощью
--all-databases, используйте
- подпрограммыи
--событияопции
явно.- базы данных,-BСбросьте несколько баз данных. Как обычно,
mysqldump обрабатывает первый аргумент имени
в командной строке в качестве имени базы данных и следующих имен
как имена таблиц. С этой опцией обрабатываются все имена
аргументы как имена базы данных.
СОЗДАТЬи
БАЗА ДАННЫХИСПОЛЬЗУЙТЕ
операторы включаются в вывод перед каждым новым
база данных.Эта опция может использоваться для сброса
performance_schemaбаза данных, которая
обычно не сбрасывается даже с
- опция для всех баз данных.
(Также используйте
- скиплок-столы
вариант.)- события,-EВключить события планировщика событий для сброшенных баз данных в
выход.Для этого варианта требуется
EVENTпривилегии для тех, кто
базы данных.Результат, созданный с помощью
--events
содержитСОЗДАТЬ СОБЫТИЕ
заявления для создания событий.--ignore-error =ошибка [, ошибка] .
.. Игнорируйте указанные ошибки. Значение параметра - это список
номера ошибок через запятую, указывающие ошибки
игнорировать во время выполнения mysqldump .Если
-forceвариант также
дано игнорировать все ошибки,
- силаимеет приоритет.--ignore-table =db_name.tbl_nameНе выгружайте данную таблицу, которая должна быть указана с помощью
имена базы данных и таблицы. Чтобы игнорировать несколько
таблицы, используйте эту опцию несколько раз. Эта опция также может
использоваться для игнорирования просмотров.- нет данных,-dНе записывать информацию о строках таблицы (то есть не выгружать
содержание таблицы).
Это полезно, если вы хотите сбросить только
CREATE TABLEзаявление для
таблица (например, для создания пустой копии таблицы
загрузив файл дампа).- подпрограммы,-RВключите хранимые подпрограммы (процедуры и функции) для
выгруженные базы данных на выходе.Для этого варианта требуется
globalSELECTпривилегия.Результат, сгенерированный с помощью
- подпрограмм
содержитСОЗДАТЬ ПРОЦЕДУРУи
CREATE FUNCTIONоператоров для
создать подпрограммы.- столыЗаменить
- базы данных
или вариант-B. mysqldump
рассматривает все аргументы имени, следующие за параметром, как таблицу
имена.
- триггерыВключите в вывод триггеры для каждой выгружаемой таблицы. Эта
опция включена по умолчанию; отключить его с помощью
- триггеры пропуска.Чтобы иметь возможность сбрасывать триггеры таблицы, вы должны иметь
TRIGGERпривилегия для
Таблица.Допускаются множественные триггеры.
mysqldump сбрасывает триггеры при активации
порядок, чтобы при перезагрузке файла дампа триггеры
созданы в том же порядке активации. Однако если
mysqldump файл дампа содержит несколько
триггеры для таблицы с одним и тем же событием триггера и
время действия, при попытках загрузить дамп возникает ошибка
файл на старый сервер, который не поддерживает несколько
триггеры.
(Для обходного пути см.
Примечания к понижению версии;
вы можете преобразовать триггеры для совместимости со старыми
серверов.)--where = ',where_condition'
-w
'где_условие'Дампить только строки, выбранные данным
ГДЕсостояние. Цитаты вокруг
условие является обязательным, если оно содержит пробелы или другие
символы, которые являются специальными для вашего командного интерпретатора.Примеры:
--where = "user = 'jimf'" -w "ИД пользователя> 1" -w "ИД пользователя <1"
Параметры производительности
Следующие варианты наиболее актуальны для выступления
особенно операций восстановления. Для больших наборов данных
операция восстановления (обработка INSERT
операторы в файле дампа) является наиболее трудоемкой частью.
Когда необходимо быстро восстановить данные, спланируйте и протестируйте
выполнение этого этапа заранее.Время восстановления измерено
через несколько часов вы можете предпочесть альтернативное резервное копирование и восстановление
решение, такое как MySQL
Enterprise Backup для InnoDB - только и
многофункциональные базы данных.
На производительность также влияет
транзакционный
варианты, в первую очередь для операции дампа.
--статистика-столбецДобавить
ANALYZE TABLEоператоров
к выходу для генерации статистики гистограммы для сброшенных
таблицы при перезагрузке файла дампа.Этот вариант
по умолчанию отключено, поскольку генерация гистограммы для больших
столы могут занять много времени.- отключение клавиш,-KДля каждой таблицы окружите
INSERTоператоры с
/ *! 40000 ИЗМЕНИТЬ ТАБЛИЦУи
имя_таблицыОТКЛЮЧЕНИЕ КЛЮЧЕЙ
* /;/ *! 40000 ИЗМЕНЕНИЕ ТАБЛИЦЫзаявлений.
имя_таблицыРАЗРЕШЕНИЕ КЛЮЧЕЙ
* /;
Это делает загрузку файла дампа
быстрее, потому что индексы создаются после того, как все строки
вставлен. Этот вариант эффективен только для неуникальных
индексыMyISAMтаблиц.- удлиненная вставка,-eНапишите инструкции
INSERT, используя
многострочный синтаксис, включающий несколько
ЗНАЧЕНИЯсписков. Это приводит к меньшему
дамп файла и ускоряет вставку при перезагрузке файла.- вставить-игнорироватьНапишите
ВСТАВИТЬ, а не
ИГНОРИРОВАТЬ утверждения
INSERTзаявления.--max-allowed-packet =значениеМаксимальный размер буфера для клиент / сервер
общение.
По умолчанию - 24 МБ, максимум - 1 ГБ.--net-buffer-length =значениеНачальный размер буфера для клиент / сервер
общение. При создании многорядной
INSERTоператоры (как с
- удлиненная вставкаили
- опция опт),
mysqldump создает строки до
- длина сетевого буферабайт
длинная.Если вы увеличите эту переменную, убедитесь, что MySQL
серверnet_buffer_length
системная переменная имеет значение как минимум такое большое.- тайм-аут сети,
-МВключите выгрузку больших таблиц, установив
--max-allowed-packet отдо
максимальное значение и сетевые таймауты чтения и записи в
большое значение.
Эта опция включена по умолчанию. Отключить
это, используйте
- тайм-аут пропуска сети.- оптЭтот параметр, включенный по умолчанию, является сокращением для
комбинация
--добавить-выпустить-таблицу
--добавить замки
- создать параметры
- отключение клавиш
- вставка удлиненная
- замки-столы
- быстрый
- кодировка набора.Это дает
быстрая операция дампа и создает файл дампа, который можно
быстро перезагрузили на сервер MySQL.Поскольку параметр
--optвключен
по умолчанию вы указываете только обратное,
- пропустить опцию, чтобы выключить
несколько настроек по умолчанию.
См. Обсуждение
mysqldump
группы опций для информации об выборочно
включение или отключение подмножества параметров, на которые влияет
- опт.- быстрый,- qЭта опция полезна для сброса больших таблиц. Это заставляет
mysqldump для получения строк для таблицы
с сервера по одной строке, а не извлекать
весь набор строк и буферизация его в памяти перед записью
вне.- пропустить опциюСм. Описание
- опция опт.
Варианты транзакций
Следующие параметры влияют на производительность дампа.
эксплуатации, в отличие от надежности и согласованности
экспортированные данные.
--добавить замкиОкружите каждую свалку стола замком
LOCKи
ТАБЛИЦЫ
РАЗБЛОКИРОВАТЬзаявлений.
ТАБЛИЦЫ
Это приводит к более быстрым вставкам
при перезагрузке файла дампа.Увидеть
Раздел 8.2.5.1, «Оптимизация операторов INSERT».- промывочные журналы,-FПеред запуском дампа очистите файлы журнала сервера MySQL.
Для этого варианта требуется
ПЕРЕЗАГРУЗИТЬпривилегия. Если вы используете
этот вариант в сочетании с
- опция для всех баз данных,
журналы сбрасываются для каждой базы данных
сбросил .Исключение составляют случаи использования
- блокировать все таблицы,
--master-data, или
- одинарная транзакция: In
в этом случае журналы сбрасываются только один раз, что соответствует
момент, когда все таблицы заблокированы
СТОЛЫ ДЛЯ ПРОМЫВКИ С БЛОКИРОВКОЙ СЧИТЫВАНИЯ.
Если вы хотите, чтобы дамп и промывка журнала происходили точно в
в тот же момент вы должны использовать
- промывочные журналывместе с
- блокировать все таблицы,
--master-data, или
- разовая операция.- флэш-привилегииДобавить
ПРИВИЛЕГИИ ПРОМЫВКИ
оператор вывода дампа после сброса
база данных mysql. Этот вариант должен быть
используется каждый раз, когда дамп содержитmysql
база данных и любая другая база данных, которая зависит от данных в
база данныхmysqlдля правильного
восстановление.Поскольку файл дампа содержит
FLUSH, перезагрузка файла требует
PRIVILEGES
привилегии, достаточные для выполнения этого оператора.
- блокировать все таблицы,-xЗаблокируйте все таблицы во всех базах данных. Это достигается
получение глобальной блокировки чтения на время всего
свалка. Эта опция автоматически отключается
- разовая операцияи
- столы блокировки.- запорные столы,-lДля каждой выгружаемой базы данных заблокируйте все таблицы для дампа
перед их сбросом. Таблицы заблокированы
ЧИТАТЬ ЛОКАЛЬНЫЙдля разрешения одновременных вставок
в случае таблицMyISAM. Для
транзакционные таблицы, такие какInnoDB,
- разовая транзакция- это
намного лучший вариант, чем--lock-tables
потому что ему вообще не нужно блокировать таблицы.
Поскольку
--lock-tablesблокирует таблицы для каждого
отдельно, эта опция не гарантирует, что
таблицы в файле дампа логически согласованы между
базы данных. Таблицы в разных базах данных могут быть сброшены в
совершенно разные состояния.Некоторые варианты, например
- опт, автоматически
включить--lock-tables.Если хотите
переопределите это, используйте--skip-lock-tablesв
конец списка опций.- без автоматической фиксацииПриложите
INSERTзаявления
для каждой выгружаемой таблицы в пределахSET autocommit =и
0COMMIT
заявления.- первичныйДамп каждой строки таблицы, отсортированной по первичному ключу или по
первый уникальный индекс, если такой индекс существует.
Это полезно
при выгрузке таблицыMyISAMдля загрузки
в таблицуInnoDB, но делает дамп
операция занимает значительно больше времени.--shared-memory-base-name =имяВ Windows имя разделяемой памяти, используемое для подключений.
сделано с использованием общей памяти на локальном сервере. По умолчанию
значениеMYSQL.Имя общей памяти
чувствительный к регистру.Этот параметр применяется только в том случае, если сервер был запущен с
shared_memoryсистема
переменная включена для поддержки соединений с общей памятью.- разовая операцияЭта опция устанавливает режим изоляции транзакции на
ПОВТОРНОЕ ЧТЕНИЕи отправляет
STARTSQL-запрос к серверу перед
TRANSACTION
сброс данных.
Это полезно только с транзакционными таблицами
например,InnoDB, потому что тогда он сбрасывает
согласованное состояние базы данных в то время, когда
СТАРТбыла выпущена без блокировки каких-либо
СДЕЛКА
Приложения.При использовании этой опции следует помнить, что только
Таблицы InnoDBвыгружаются в согласованном
штат. Например, любойMyISAMили
ПАМЯТЬтаблиц сброшены при использовании этого
опция может все еще изменить состояние.Хотя
- дамп одной транзакции
находится в процессе, чтобы обеспечить действительный файл дампа (правильная таблица
содержимое и координаты двоичного журнала), других подключений нет
следует использовать следующие утверждения:
ИЗМЕНИТЬ ТАБЛИЦУ,
СОЗДАТЬ ТАБЛИЦУ,
ТАБЛИЦА ПАДЕНИЯ,
ПЕРЕИМЕНОВАНИЕ ТАБЛИЦЫ,
ОБРЕЗАННАЯ ТАБЛИЦА.
Последовательный
read не изолирован от этих утверждений, поэтому используйте их
на стол, который будет сброшен, может вызвать
SELECT, который выполняется
mysqldump для получения содержимого таблицы
получить неверное содержимое или потерпеть неудачу.- опционна одну транзакцию и
- замки-столывариант есть
взаимоисключающие, посколькуLOCKзаставляет любые ожидающие транзакции быть
ТАБЛИЦЫ
совершено неявно.Чтобы выгрузить большие таблицы, объедините
- опционна одну транзакцию с
- быстрый вариант.
Группы опций
Опция
--optвключается
несколько настроек, которые работают вместе для выполнения быстрого дампа
операция.
Все эти настройки включены по умолчанию, потому что
--optпо умолчанию включен. Таким образом, вы редко, если
всегда указывайте- опт. Вместо этого вы можете повернуть
эти настройки отключите как группу, указав
- skip-opt, необязательно повторно включить
определенные настройки, указав соответствующие параметры позже
в командной строке.Опция
--compactпревращает
выключить несколько настроек, которые определяют, является ли необязательным
утверждения и комментарии появляются в выводе.Опять же, ты можешь
следуйте этому параметру с другими параметрами, которые повторно включают определенные
настройки или включите все настройки с помощью
- skip-compactform.
При выборочном включении или отключении эффекта группы
вариант, порядок важен, потому что варианты обрабатываются в первую очередь
длиться.
Например,
- отключение клавиш
- замки-столы
- пропустить вариант не будет
предполагаемый эффект; это то же самое, что и
- пропустить отдельно.
Примеры
Чтобы сделать резервную копию всей базы данных:
оболочка> mysqldump db_name > backup-file.sql Чтобы загрузить файл дампа обратно на сервер:
оболочка> mysql db_name < backup-file.sql Другой способ перезагрузить файл дампа:
оболочка> mysql -e "источник / путь к файлу резервной копии / резервной копии.sql " имя_бд mysqldump также очень полезен для заполнения
базы данных путем копирования данных с одного сервера MySQL на другой:
оболочка> mysqldump --opt db_name | mysql --host = удаленный_хост -C имя_бд Вы можете выгрузить несколько баз данных одной командой:
оболочка> mysqldump --databases db_name1 [ db_name2 .
..]> my_databases.sql Чтобы выгрузить все базы данных, используйте
- опция для всех баз данных :
оболочка> mysqldump --all-databases> all_databases.sql Для таблиц InnoDB ,
mysqldump предоставляет способ сделать онлайн
резервный:
оболочка> mysqldump --all-databases --master-data --single-transaction> all_databases.sql Эта резервная копия устанавливает глобальную блокировку чтения для всех таблиц (используя
СТОЛЫ ДЛЯ ПРОМЫВКИ С БЛОКИРОВКОЙ ЧТЕНИЯ ) в
начало свалки.Как только этот замок был
считываются координаты двоичного журнала и блокировка
выпущенный. Если выполняются длинные операторы обновления, когда
FLUSH выписка выдается,
Сервер MySQL может зависнуть до тех пор, пока эти операторы не закончатся.
После этого дамп становится свободным от блокировки и не мешает
читает и пишет по таблицам.
Если утверждения обновления,
сервер MySQL получает короткие (с точки зрения выполнения
время) начальный период блокировки не должен быть заметен, даже
со многими обновлениями.
Для восстановления на определенный момент времени (также известного как
«Повторение транзакций», когда вам нужно восстановить старую
резервное копирование и воспроизведение изменений, произошедших после этого резервного копирования),
часто бывает полезно повернуть двоичный журнал (см.
Раздел 5.4.4, «Двоичный журнал») или хотя бы знать двоичный журнал.
координаты, которым соответствует дамп:
оболочка> mysqldump --all-databases --master-data = 2> all_databases.sql Или:
оболочка> mysqldump --all-databases --flush-logs --master-data = 2
> все_базы данных.sql - master-data и
- опционы на одну транзакцию
могут использоваться одновременно, что обеспечивает удобный способ
сделать онлайн-резервную копию, пригодную для использования до момента времени
восстановление, если таблицы хранятся с использованием
InnoDB накопитель.
Для получения дополнительной информации о создании резервных копий см.
Раздел 7.2, «Методы резервного копирования базы данных» и
Раздел 7.3, «Пример стратегии резервного копирования и восстановления».
Ограничения
mysqldump не выгружает
performance_schema или sys
схема по умолчанию. Чтобы сбросить любой из них, назовите их явно на
командная строка. Вы также можете назвать их
- базы данных вариант. Для
performance_schema , также используйте
- скиплок-столы
вариант.
mysqldump не выгружает
INFORMATION_SCHEMA схема.
mysqldump не делает дамп
InnoDB СОЗДАТЬ заявлений.
TABLESPACE
mysqldump не выгружает кластер NDB
ndbinfo информационная база данных.
mysqldump включает операторы для воссоздания
general_log и
slow_query_log таблиц для дампов
база данных mysql .Содержимое таблицы журнала не
свалили.
Если у вас возникли проблемы с резервным копированием просмотров из-за недостаточного
привилегии, см. Раздел 25.9, «Ограничения на просмотры» для
обходной путь.
Как создать резервную копию и восстановить базы данных MySQL с помощью Mysqldump
В этом руководстве объясняется, как создавать резервные копии и восстанавливать базы данных MySQL или MariaDB из командной строки с помощью утилиты mysqldump.
Файлы резервных копий, создаваемые утилитой mysqldump, в основном представляют собой набор операторов SQL, которые можно использовать для воссоздания исходной базы данных.Команда mysqldump также может создавать файлы в форматах CSV и XML.
Вы также можете использовать утилиту mysqldump для переноса базы данных MySQL на другой сервер MySQL.
Если вы не создадите резервную копию баз данных, программная ошибка или отказ жесткого диска могут иметь катастрофические последствия. Чтобы сэкономить время и нервы, настоятельно рекомендуется принять меры предосторожности и регулярно создавать резервные копии баз данных MySQL.
Синтаксис команды Mysqldump #
Прежде чем приступить к использованию команды mysqldump, давайте начнем с обзора основного синтаксиса.
Выражения утилиты mysqldump имеют следующий вид:
mysqldump [options]> file.sql
Для использования команды mysqldump сервер MySQL должен быть доступен и запущен.
Резервное копирование одной базы данных MySQL #
Наиболее распространенный вариант использования инструмента mysqldump - резервное копирование одной базы данных.
Например, чтобы создать резервную копию базы данных с именем имя_базы_данных с помощью пользователя root и сохранить ее в файл с именем имя_базы_данных. запустите следующую команду:
sql
mysqldump -u root -p имя_базы_данных> имя_базы_данных.sql Вам будет предложено ввести пароль root. После успешной аутентификации начнется процесс дампа. В зависимости от размера базы данных процесс может занять некоторое время.
Если вы вошли в систему как тот же пользователь, которого используете для выполнения экспорта, и этот пользователь не требует пароля, вы можете опустить параметры -u и -p :
mysqldump имя_базы_данных> имя_базы_данных.sql Резервное копирование нескольких баз данных MySQL #
Для резервного копирования нескольких баз данных MySQL с помощью одной команды вам необходимо использовать параметр --database , за которым следует список баз данных, которые вы хотите создать резервную копию. Каждое имя базы данных должно быть разделено пробелом.
mysqldump -u root -p --databases имя_базы_данных_a имя_базы_данных_b> databases_a_b.
sql Приведенная выше команда создаст файл дампа, содержащий обе базы данных.
Резервное копирование всех баз данных MySQL #
Используйте параметр --all-databases для резервного копирования всех баз данных MySQL:
mysqldump -u root -p --all-databases> all_databases.sql Как и в предыдущем примере, приведенная выше команда создаст один файл дампа, содержащий все базы данных.
Резервное копирование всех баз данных MySQL в отдельные файлы #
Утилита mysqldump не предоставляет возможности резервного копирования всех баз данных в отдельные файлы, но мы легко достигаем этого с помощью простого цикла bash FOR :
для БД в $ (mysql -e 'показать базы данных' -s --skip-column-names); делать
mysqldump $ DB> "$ DB.sql";
сделанный
Приведенная выше команда создаст отдельный файл дампа для каждой базы данных, используя имя базы данных в качестве имени файла.
Создание сжатой резервной копии базы данных MySQL #
Если размер базы данных очень велик, рекомендуется сжать выходные данные. Для этого просто направьте вывод в утилиту gzip и перенаправьте его в файл, как показано ниже:
mysqldump имя_базы_данных | gzip> имя_базы_данных.sql.gz Создание резервной копии с отметкой времени #
Если вы хотите хранить более одной резервной копии в одном месте, вы можете добавить текущую дату к имени файла резервной копии:
mysqldump имя_базы_данных> имя_базы_данных - $ (дата +% Y% m% d).sql Приведенная выше команда создаст файл следующего формата: имя_базы_данных-20180617.sql
Восстановление дампа MySQL #
Восстановить дамп MySQL можно с помощью инструмента mysql . Общий синтаксис команды следующий:
mysql имя_базы_данных В большинстве случаев вам потребуется создать базу данных для импорта.
Если база данных уже существует, сначала ее нужно удалить.
В следующем примере первая команда создаст базу данных с именем имя_базы_данных , а затем импортирует дамп имя_базы_данных.sql в него:
mysql -u root -p -e "создать базу данных имя_базы_данных";mysql -u root -p имя_базы_данных <имя_базы_данных.sql
Восстановить единую базу данных MySQL из полного дампа MySQL #
Если вы создали резервную копию всех своих баз данных с помощью параметра -all-databases и хотите восстановить одна база данных из файла резервной копии, который содержит несколько баз данных, используйте параметр --one-database , как показано ниже:
mysql --one-database имя_базы_данных Экспорт и импорт базы данных MySQL одной командой #
Вместо создания файла дампа из одной базы данных и последующего импорта резервной копии в другую базу данных MySQL вы можете использовать следующий однострочный файл:
mysqldump -u root -p имя_базы_данных | mysql -h remote_host -u root -p имя_удаленной_базы_данных Приведенная выше команда направит вывод в клиент mysql на удаленном хосте и импортирует его в базу данных с именем имя_удаленной_данных .
Перед запуском команды убедитесь, что база данных уже существует на удаленном сервере.
Автоматизация резервного копирования с помощью Cron #
Автоматизировать процесс резервного копирования баз данных так же просто, как создать задание cron, которое будет запускать команду mysqldump в указанное время.
Чтобы настроить автоматическое резервное копирование базы данных MySQL с помощью cronjob, выполните следующие действия:
Создайте файл с именем
.my.cnfв домашнем каталоге пользователя:sudo nano ~ /.my.cnfСкопируйте и вставьте следующий текст в файл .my.cnf.
[клиент] пользователь = dbuser пароль = dbpasswdНе забудьте заменить
dbuserиdbpasswdна пользователя базы данных и пароль пользователя.Ограничьте права доступа к файлу учетных данных, чтобы только ваш пользователь имел к нему доступ:
chmod 600 ~ / .
my.cnf Создайте каталог для хранения резервных копий:
mkdir ~ / db_backupsОткройте файл crontab пользователя:
crontab -eДобавьте следующее задание cron, которое будет создавать резервную копию базы данных с именем
mydbкаждый день в 3 часа ночи:0 3 * * * / usr / bin / mysqldump -u dbuser mydb> / home / username / db_backups / mydb - $ (date + \% Y \% m \% d).sqlНе забудьте заменить
имя пользователясвоим фактическим именем пользователя. Мы также избегаем знаков процента (%), потому что они имеют особое значение в crontab.
Вы также можете создать другое задание cron для удаления любых резервных копий старше 30 дней:
find / path / to / backups -type f -name "* .sql" -mtime +30 -delete
Конечно, вам необходимо настроить команду в соответствии с местоположением резервной копии и именами файлов.
Чтобы узнать больше о команде find, ознакомьтесь с нашим руководством по поиску файлов в Linux с помощью командной строки.
Заключение №
В этом руководстве рассматриваются только основы, но оно должно стать хорошим началом для всех, кто хочет научиться создавать и восстанавливать базы данных MySQL из командной строки с помощью утилиты mysqldump.
Если вы хотите узнать больше о работе с MySQL из командной строки, ознакомьтесь с нашим Руководством по управлению учетными записями пользователей и базами данных MySQL.
Вы также можете проверить руководство о том, как сбросить пароль root MySQL, если вы его забыли.
Если у вас есть вопросы или отзывы, не стесняйтесь оставлять комментарии.
Дамп базы данных - это текстовый файл, содержащий набор операторов SQL, которые необходимо запустить на сервере SQL, чтобы создать базу данных со всей внутренней структурой и заполнить ее значениями. Как правило, дамп базы данных может использоваться для нескольких целей:
Для баз данных MySQL можно выполнить все перечисленные выше операции с помощью Handy Backup. Версия 8.2.1, от 15 января 2021 года. 112 МБ Версия Small Server нашей программы позволяет создавать дампы базы данных MySQL, а также выполнять резервное копирование Oracle, IBM DB2, MS SQL и других баз данных. Скачайте полнофункциональную пробную версию - это бесплатно! По сравнению с резервным копированием двоичных файлов, дампы базы данных имеют ряд преимуществ:
В следующем видеоуроке вы можете узнать, как создавать резервные копии и восстанавливать базы данных MySQL с помощью Handy Backup.
Примечание: Инструкции в этом видео предполагают, что на вашем компьютере уже установлена программа Handy Backup. Если вы еще этого не сделали, скачайте его. Наше программное обеспечение имеет ряд расширенных плагинов, предназначенных для резервного копирования и восстановления различных баз данных.Хотя все они поддерживают горячее резервное копирование, есть только один, MySQL Backup , который может создавать файлы дампа базы данных. Мы приглашаем вас попробовать его прямо сейчас - его легко настроить и использовать! См. Также: | Свяжитесь с намиСрок действия
Глоссарий по программному обеспечению резервного копированияВ текущем глоссарии объясняются различные термины, с которыми вы можете встретиться при работе с Handy Backup или другим программным обеспечением для резервного копирования. Handy Backup - это утилита резервного копирования для серверов Windows и ПК, известная своей гибкостью и простотой использования. Глоссарий содержит 172 термина. Текущий раздел Базы данных содержит 17 терминов. Другие термины «Базы данных»
|
Используйте mysqldump для резервного копирования MySQL или MariaDB
Обновлено
, by Linode
Traducciones al Español
Estamos traduciendo nuestros guías y tutoriales al Español.Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.
MySQL и
MariaDB включает
Утилита mysqldump для упрощения процесса создания резервной копии базы данных или системы баз данных. Использование mysqldump создает логическую резервную копию . Вы можете использовать этот инструмент, только если ваш процесс базы данных доступен и работает.
Если ваша база данных недоступна по какой-либо причине, вы можете вместо этого создать
физическая резервная копия , которая является копией структуры файловой системы, содержащей ваши данные.
Инструкции в этом руководстве применимы как к MySQL, так и к MariaDB. Для упрощения будет использовано имя MySQL.
Перед началом работы
Вам потребуется работающая установка MySQL или MariaDB, а также пользователь базы данных для выполнения резервного копирования. Для получения справки по установке см.
Документация Linode MySQL.Вам потребуется root-доступ к системе или учетная запись пользователя с привилегиями
sudo.
Резервное копирование базы данных
Общий синтаксис команды mysqldump :
mysqldump -u [имя пользователя] -p [имя_базы_данных]> [имя_файла] - $ (date +% F) .sql
-
mysqldumpзапрашивает пароль перед запуском процесса резервного копирования. - В зависимости от размера базы данных это может занять некоторое время.
- Резервная копия базы данных будет создана в каталоге, в котором выполняется команда.

-
- $ (date +% F)добавляет метку времени к имени файла.
Примеры вариантов использования:
Создание резервной копии всей системы управления базами данных (СУБД):
mysqldump --all-databases --single-transaction --quick --lock-tables = false> полная резервная копия - $ (дата +% F) .sql -u root -pСоздайте резервную копию определенной базы данных.Замените
db1именем базы данных, для которой требуется создать резервную копию:mysqldump -u username -p db1 --single-transaction --quick --lock-tables = false> db1-backup - $ (date + % F) .sqlСоздайте резервную копию одной таблицы из любой базы данных. В приведенном ниже примере
table1экспортируется из базы данныхdb1:mysqldump -u username -p --single-transaction --quick --lock-tables = false db1 table1> db1-table1 - $ ( дата +% F).
sql
Вот разбивка опций команды mysqldump , использованных выше:
-
--single-transaction: Выполните инструкцию BEGIN SQL перед сбросом данных с сервера. -
--quick: Принудительно выводить таблицы построчно. Это обеспечивает дополнительную безопасность для систем с небольшим объемом оперативной памяти и / или большими базами данных, где хранение таблиц в памяти может стать проблематичным. -
--lock-tables = false: Не блокировать таблицы для сеанса резервного копирования.
Автоматическое резервное копирование с помощью cron
В / etc / crontab можно добавлять записи для регулярного планирования резервного копирования базы данных.
Создайте файл для хранения учетных данных пользователя root MySQL, который будет выполнять резервное копирование. Обратите внимание, что системный пользователь, в домашнем каталоге которого хранится этот файл, может не иметь отношения к каким-либо пользователям MySQL.

- Файл: /home/example_user/.mylogin.cnf
1 2 3[клиент] пользователь = корень password = пароль корневого пользователя MySQL
Ограничить права доступа к файлу учетных данных:
chmod 600 / home / example_user /.mylogin.cnfСоздайте файл задания cron. Ниже приведен пример задания cron для резервного копирования всей системы управления базами данных каждый день в 01:00:
- Файл: /etc/cron.daily/mysqldump
10 1 * * * / usr / bin / mysqldump --defaults-extra-file = / home / example_user / .my.cnf -u root --single-transaction --quick --lock-tables = false --all-databases> full-backup - $ (date + \% F) .sql
Дополнительные сведения о cron см.

cron (8) и
cron (5) справочные страницы.
Восстановить резервную копию
Общий синтаксис команды восстановления:
mysql -u [имя пользователя] -p [имя базы данных] <[имя файла] .sql
Восстановить всю резервную копию СУБД. Вам будет предложено ввести пароль пользователя root MySQL:
Это перезапишет все текущие данные в системе баз данных MySQLmysql -u root -pВосстановить единый дамп базы данных.Пустая или старая целевая база данных должна уже существовать для импорта данных, и пользователь MySQL, в котором вы запускаете команду, должен иметь доступ на запись в эту базу данных:
mysql -u [username] -p db1Восстановите одну таблицу, у вас должна быть целевая база данных, готовая принимать данные:
mysql -u dbadmin -p db1
Эта страница была первоначально опубликована на
Как импортировать и экспортировать базы данных в MySQL или MariaDB
Автор выбрал Фонд бесплатных и открытых источников для получения пожертвования в рамках программы Write for DOnations.
Введение
Импорт и экспорт баз данных - обычная задача при разработке программного обеспечения. Вы можете использовать дампы данных для резервного копирования и восстановления вашей информации. Вы также можете использовать их для переноса данных на новый сервер или среду разработки.
В этом руководстве вы будете работать с дампами базы данных в MySQL или MariaDB (команды взаимозаменяемы).В частности, вы экспортируете базу данных, а затем импортируете эту базу данных из файла дампа.
Предварительные требования
Для импорта или экспорта базы данных MySQL или MariaDB вам потребуется:
Примечание: В качестве альтернативы ручной установке вы можете изучить приложение MySQL One-Click на DigitalOcean Marketplace.
Шаг 1. Экспорт базы данных MySQL или MariaDB
Консольная утилита mysqldump экспортирует базы данных в текстовые файлы SQL.Это упрощает перенос и перемещение баз данных. Вам понадобится имя вашей базы данных и учетные данные для учетной записи, права которой разрешают как минимум полный доступ только для чтения к базе данных.
Используйте mysqldump для экспорта базы данных:
- mysqldump -u имя пользователя -p имя_базы_данных> data-dump.sql
-
имя пользователя- это имя пользователя, под которым вы можете войти в базу данных с -
имя_базы_данных- имя базы данных для экспорта -
дамп данных.sql- это файл в текущем каталоге, в котором хранится вывод.
Команда не выдаст визуального вывода, но вы можете проверить содержимое data-dump.sql , чтобы проверить, является ли это допустимым файлом дампа SQL.
Выполните следующую команду:
Верх файла должен выглядеть примерно так, показывая дамп MySQL для базы данных с именем имя_базы_данных .
Фрагмент дампа SQL
- Дамп MySQL 10.13 Дистриб 5.7.16, для Linux (x86_64)
-
- Хост: localhost База данных: имя_базы_данных
- ------------------------------------------------ ------
- Версия сервера 5.7.16-0ubuntu0.16.04.1
Если в процессе экспорта возникнут какие-либо ошибки, mysqldump выведет их на экран.
Шаг 2. Импорт базы данных MySQL или MariaDB
Чтобы импортировать существующий файл дампа в MySQL или MariaDB, вам нужно будет создать новую базу данных. Эта база данных будет содержать импортированные данные.
Сначала войдите в MySQL как root или другой пользователь с достаточными привилегиями для создания новых баз данных:
Эта команда перенесет вас в командную строку оболочки MySQL.
Затем создайте новую базу данных с помощью следующей команды. В этом примере новая база данных называется new_database :
- СОЗДАТЬ БАЗУ ДАННЫХ new_database;
Вы увидите этот вывод, подтверждающий создание базы данных.
Выход
Запрос в порядке, затронута 1 строка (0,00 сек)
Затем выйдите из оболочки MySQL, нажав CTRL + D . Из обычной командной строки вы можете импортировать файл дампа с помощью следующей команды:
- mysql -u имя пользователя -p new_database
-
имя пользователя- это имя пользователя, под которым вы можете войти в базу данных с -
новая база данных- это имя только что созданной базы данных -
дамп данных.sql- это файл дампа данных для импорта, расположенный в текущем каталоге
Если команда выполняется успешно, она не выдаст никаких результатов.
Если во время процесса возникнут какие-либо ошибки, mysql вместо этого выведет их на терминал. Чтобы проверить, был ли импорт успешным, войдите в оболочку MySQL и проверьте данные. Выбор новой базы данных с USE new_database , а затем SHOW TABLES; или аналогичную команду, чтобы просмотреть некоторые данные.
Заключение
В этом руководстве вы создали дамп базы данных из базы данных MySQL или MariaDB. Затем вы импортировали этот дамп данных в новую базу данных. mysqldump имеет дополнительные настройки, которые можно использовать для изменения способа создания дампов данных системой. Вы можете узнать больше на официальной странице документации mysqldump.
Чтобы узнать больше о MySQL, посетите нашу страницу ресурсов MySQL.
Чтобы узнать больше о запросах MySQL, ознакомьтесь с нашим учебным пособием «Введение в запросы в MySQL».
Полное руководство по mysqldump
# Introduction
Всем сложным приложениям для хранения информации требуется какая-то база данных.
MySQL - одна из самых популярных баз данных, используемых в Интернете. Большая часть времени и стоимости бизнеса вкладывается в базу данных и ее ключ для обеспечения безопасности этих данных. SnapShooter использует MySQL для управления и резервного копирования серверов и баз данных клиентов.
В этом руководстве мы подробно рассмотрим утилиту mysqldump. Мы рассмотрим способы создания резервной копии, а также общие ошибки, с которыми пользователи сталкиваются при ее использовании.
# Что такое mysqldump?
MySQL - это одна из наиболее широко используемых систем управления реляционными базами данных с открытым исходным кодом. Он используется для хранения чего угодно, от простого имени до галереи изображений или большого количества информации в сети. mysqldump - это часть пакета реляционной базы данных MySQL, которая используется для создания дампа (резервного копирования) базы данных или набора баз данных в простой текстовый файл. Текстовый файл - это набор операторов SQL, которые используются для восстановления базы данных в исходное состояние.
Обычно mysqldump используется для экспорта базы данных в файл резервной копии (как мы делаем в SnapShooter), а также для перемещения базы данных на другой хост. Команда mysqldump также генерирует вывод в XML, CSV и других текстовых форматах с разделителями.
# Basic Как использовать MySQL Dump
Базовый синтаксис команды Mysqldump показан ниже:
mysqldump -u ИМЯ ПОЛЬЗОВАТЕЛЯ -p ПАРОЛЬ ИМЯ БД> DBBACKUP.sql
mysqldump -u ИМЯ ПОЛЬЗОВАТЕЛЯ -pPASSWORD --databases DB1 DB2 DB3.. > DBBACKUP.sql
mysqldump -u ИМЯ ПОЛЬЗОВАТЕЛЯ -pPASSWORD --all-databases> ALLDBBACKUP.sql # Краткое описание каждой опции показано ниже:
-u
Указывает ваше имя пользователя MySQL.
-п
Указывает ваш пароль MySQL.
DBNAME
Имя базы данных, для которой требуется создать резервную копию.
DBBACKUP.sql
Имя файла резервной копии, который вы хотите создать.
-h
Указывает имя хоста сервера базы данных MySQL.
- Базы данных
Используется для определения базы данных.
-все-базы данных
Используется для резервного копирования всех баз данных.
--default-auth = плагин
Он используется для указания подключаемого модуля проверки подлинности на стороне клиента.
- сжатие
Используется для включения сжатия в протоколе сервер / клиент.
-П
Используется для указания номера порта, используемого для подключения к MySQL.
# Как сделать резервную копию одной базы данных MySQL
Самый простой и легкий способ сделать резервную копию отдельной базы данных - выполнить следующую команду:
mysqldump -u root -ppassword wpdb> wpdb_backup.sql Эта команда создаст дамп базы данных с именем wpdb и сгенерирует единственный файл с именем wpdb_backup.sql.
# Как сделать резервную копию нескольких баз данных MySQL
С помощью mysqldump вы также можете сделать резервную копию нескольких баз данных в один файл.
Например, создайте дамп базы данных с именем wpdb1, wpdb2 и wpdb3 и сгенерируйте один файл резервной копии с именем wpdb_backup3.sql, выполните следующую команду:
mysqldump -u root -ppassword --databases wpdb1 wpdb2 wpdb3> wpdb_backup3.sql # Как сделать резервную копию всех баз данных MySQL
Mysqldump также позволяет создавать резервные копии всех баз данных в вашей системе.
Например, сделайте резервную копию всех баз данных и создайте один файл резервной копии с именем alldb_backup.sql, выполните следующую команду:
mysqldump -u root -ppassword --all-databases> alldb_backup.sql # Как сделать резервную копию только структуры баз данных MySQL
Если вы хотите создать резервную копию структуры базы данных, вы должны использовать параметр –no-data в команде mysqldump.
Например, он генерирует резервную копию структуры базы данных базы данных wpdb, выполните следующую команду:
mysqldump -u root -ppassword --no-data wpdb> wpdb_backup.
sql # Как сделать резервную копию одной таблицы MySQL
Если вы хотите создать резервную копию определенной таблицы, вам нужно будет указать имя таблицы после имени базы данных.
Например, сгенерируйте резервную копию таблицы wptable базы данных wpdb, выполните следующую команду:
mysqldump -u root -ppassword --no-data wpdb wptable> wpdbtable_backup.sql # Как сделать резервную копию MySQL без структуры
Если вы хотите создать резервную копию данных без структуры базы данных, вы должны использовать параметр –no-create-info в команде mysqldump.
Например, генерирует резервную копию данных базы данных wpdb, выполните следующую команду:
mysqldump -u root -ppassword wpdb --no-create-info> wpdb_backup.sql # Basic Как импортировать mysqldump
Самый простой и легкий способ импортировать базу данных с помощью следующей команды:
mysql -u root -ppassword wpdb sql Примечание. Перед импортом базы данных вам потребуется создать пустую базу данных на целевой машине.
Вы также можете импортировать базу данных с помощью команды mysqlimport, если хотите восстановить базу данных, которая уже существует на целевой машине.
mysqlimport -u root -ppassword wpdb Если вы хотите импортировать все базы данных, выполните следующую команду:
mysql -u корень -ppassword # MySQLDump что делает флаг --quick?
mysqldump работает путем извлечения и выгрузки содержимого таблицы по строкам или извлечения всего содержимого из таблицы и буферизации его в памяти перед сбросом.Это вызовет проблему, если вы экспортируете большие таблицы.
Используйте команду mysqldump с флагом --quick для считывания больших таблиц способом, который не требует больших объемов оперативной памяти для размещения всей таблицы в памяти.
Это обеспечит дополнительную безопасность для систем с небольшим объемом оперативной памяти и большими базами данных.
# Можно ли использовать предложение Where с MySQLDump?
Конечно, легко использовать предложение where с командой mysqldump. Если у вас есть база данных с большим количеством таблиц, и каждая таблица содержит миллиард записей, и если вам нужны записи за определенный год, вы можете использовать предложение where с командой mysqldump.Предложение Where позволяет вам передать строку для условия и получить нужные записи.
Например, выберите все записи из таблицы с именем mytable и базы данных с именем wpdb, где значение поля date_created больше, чем '2018-02-01', выполните следующую команду:
mysqldump -u root -ppassword wpdb --tables mytable --where = "date_created> '2018-02-01'"> wpdb_myrecord.sql # mysqldump Общие ошибки и исправления
# mysqldump: ошибка 2013: потеряно соединение с сервером mysql во время запроса при сбросе таблицы?
По-прежнему возникают проблемы с mysqldump? Позвольте нам автоматизировать резервное копирование mysql - получите бесплатную пробную версию сегодня
Вы должны увеличить значение max_allowed_packet, net_write_timeout, net_read_timeout и innodb_buffer_pool_size до соответствующих уровней, чтобы исправить ошибку.
Чтобы установить указанное выше значение, отредактируйте файл конфигурации MySQL:
нано /etc/mysql/my.cnf
Добавьте следующие строки в разделы [mysqld] и [mysqldump]:
[mysqld]
innodb_buffer_pool_size = 100 млн
max_allowed_packet = 1024 МБ
[mysqldump]
max_allowed_packet = 1024 МБ
net_read_timeout = 3600
net_write_timeout = 3600 Сохраните и закройте файл, когда закончите. Затем перезапустите службу MySQL, чтобы изменения вступили в силу.
перезапуск службы mysql или перезапуск systemctl mysqld
# mysqldump: error 2020: получил пакет больше, чем max_allowed_packet байтов при сбросе таблицы?
Когда база данных, которую вы пытаетесь сделать резервную копию, очень большая, а для параметра max_allowed_packet установлено низкое значение.Это вызовет указанную выше ошибку.
Вы можете исправить ошибку, отредактировав файл конфигурации MySQL:
нано /etc/mysql/my.
cnf
Увеличьте значение max_allowed_packet в разделе [mysqld] и [mysqldump]
[mysqld]
max_allowed_packet = желаемое значение
[mysqldump]
max_allowed_packet = желаемое значение Сохраните и закройте файл, когда закончите. Затем перезапустите службу MySQL, чтобы изменения вступили в силу.
перезапуск службы mysql или перезапуск systemctl mysqld
# mysqldump при использовании таблиц блокировки?
По умолчанию команда mysqldump блокирует все таблицы до завершения резервного копирования. Но это плохой вариант в реальной среде, где база данных обширна и требуется время безотказной работы.
В первую очередь используется для защиты целостности данных при выгрузке таблиц MyISAM. Таблицы MyISAM требуют этой блокировки, потому что они не поддерживают транзакции.Если вы используете сочетание таблиц MyISAM и InnoDB, то выгрузите свои таблицы MyISAM отдельно от таблиц InnoDB, используя опцию --lock-tables .
InnoDB в настоящее время является механизмом хранения таблиц по умолчанию. Таким образом, вы можете пропустить параметр блокировки таблиц, используя --skip-lock-tables , чтобы остановить поведение, и --single-transaction , чтобы запустить mysqldump внутри транзакции.
# Не удалось выполнить 'show create table x' Таблица не существует (1146)
Хотите выполнять резервное копирование, игнорируя таблицы - получите бесплатную пробную версию сегодня
Несколько раз таблица удалялась в процессе резервного копирования.В этом случае вы можете ограничить определенные таблицы с помощью команды mysqldump, используя параметр --ignore-table.
Вам нужно будет указать имена базы данных и таблицы, как показано ниже:
mysqldump -u root -ppassword dbname --ignore-table = tablename> db_backup.sql Вы также можете игнорировать несколько таблиц, указав параметр для каждой таблицы, как показано ниже:
mysqldump -u root -ppassword dbname --ignore-table = table1 --ignore-table = table2> db_backup.
sql # mysqldump unknown database при выборе базы данных
Обычно эта ошибка возникает, когда вы указываете пароль в командной строке с флагом -p и между -p и паролем есть пробел.
Например, если вы хотите создать дамп базы данных с именем wpdb, используя пользователя «root» и пароль «your-password», и используйте следующую команду:
Приведенная выше команда выдаст сообщение об ошибке "" Неизвестная база данных ваш-пароль "при выборе базы данных". На самом деле, вы должны указать пароль без пробела после ключа -p, как показано ниже:
mysqldump -u root -pyour-password wpdb> wpdb_backup.sql # mysqldump получил ошибку 1044 при выборе базы данных
Вы получите эту ошибку, если попытаетесь сбросить базу данных с пользователем, у которого недостаточно прав для доступа к выбранной базе данных.
Чтобы исправить эту ошибку, назначьте пользователю соответствующие права доступа к базе данных.
Сначала войдите в MySQL с помощью следующей команды:
mysql -u корень -p Введите пароль root для MySQL, затем предоставьте пользователю все права доступа к базе данных:
ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ НА wpdb. * TO 'your_user' @ 'localhost'; Затем сбросьте привилегии и выйдите из MySQL с помощью следующей команды:
ПРИВИЛЕГИИ ПРОМЫВКИ;
ВЫХОД; # доступ mysqldump запрещен для пользователя при попытке подключения
У этой ошибки несколько причин.Наиболее частые причины этой ошибки перечислены ниже:
# 1. Неверная команда mysqldump
Одна из распространенных причин этой ошибки заключается в том, что вы используете неправильный формат команды mysqldump.
Например, общий синтаксис резервного копирования базы данных с помощью mysqldump показан ниже:
mysqldump -u пользователь -ppasword база данных> database.
sql Вы получите указанную выше ошибку, если сделаете резервную копию базы данных без указания имени пользователя и пароля, как показано ниже:
база данных mysqldump> база данных.sql Вы должны получить следующую ошибку:
mysqldump: Получена ошибка: 1045: «Доступ запрещен для пользователя 'user' @ 'localhost' (с использованием пароля: NO)» при попытке подключения # 2. Неверные учетные данные пользователя
Вы также получите указанную выше ошибку, если используете неправильное имя пользователя и пароль при подключении к базе данных. Следовательно, MySQL не может проверить подлинность учетной записи и выдает эту ошибку.
# 3. Удаленному хосту не разрешено подключаться к базе данных
Вы также увидите эту ошибку, если пытаетесь создать резервную копию базы данных на удаленном сервере.Потому что удаленный хост запрещает внешние подключения, и они позволяют подключаться только с локального хоста.
Чтобы исправить это, настройте сервер MySQL так, чтобы он разрешал соединения с удаленного хоста.
# Как сделать резервную копию большой базы данных mysqldump
Несколько полезных советов и приемов при использовании mysqldump для очень большой базы данных.
# 1. Как сжать вывод mysqldump
Рекомендуется сжать резервную копию базы данных в формате gzip, чтобы уменьшить размер базы данных.
Выполните следующую команду, чтобы выгрузить базу данных с именем wpdb и заархивировать ее одновременно:
mysqldump -u root -ppassword wpdb | gzip> wpdb_backup.sql.gz Если вы хотите восстановить сжатую базу данных, выполните следующую команду:
gunzip # 2. Как импортировать большую базу данных MySQL
Сначала войдите в оболочку MySQL, используя следующую команду:
mysql -u корень -p Введите пароль root для MySQL, затем установите для длины сетевого буфера большое число байтов, как показано ниже:
установить глобальную net_buffer_length = 1000000; Далее также установите максимально допустимый размер пакета на большое число байтов, как показано ниже:
установить глобальный max_allowed_packet = 1000000000; Затем отключите проверку внешнего ключа, чтобы избежать задержек, ошибок и нежелательного поведения, как показано ниже:
НАБОР foreign_key_checks = 0;
УСТАНОВИТЬ UNIQUE_CHECKS = 0;
УСТАНОВИТЬ АВТОКОММИТ = 0; Затем импортируйте файл дампа с помощью следующей команды:
источник / резервный путь / wpdb.
sql Когда вы закончите, включите проверку внешнего ключа с помощью следующей команды:
УСТАНОВИТЬ foreign_key_checks = 1;
УСТАНОВИТЬ UNIQUE_CHECKS = 1;
УСТАНОВИТЬ АВТОКОММИТ = 1; # 3. Разделить базы данных в отдельные файлы данных
Если у вас большая база данных, вы также можете разделить их по отдельности на отдельные файлы данных.
Вы можете создать новый файл со списком всех баз данных, используя следующую команду:
mysql -u root -ppassword -A --skip-column-names -e "ВЫБРАТЬ имя_схемы ИЗ
information_schema.schemata WHERE schema_name NOT IN ('information_schema', 'mysql') ">
db_list.txt Когда у вас есть список баз данных, вы можете запустить цикл с помощью команды mysqldump через список, как показано ниже:
для БД в `cat db_list.txt`
делать
mysqldump -u root -ppassword --hex-blob --routines --triggers $ {DB} | gzip> $ {DB} .sql.gz &
сделанный
ждать # mysqldump без пароля
Когда вы создаете дамп базы данных с помощью mysqldump, вам нужно будет указать имя пользователя и пароль с помощью команды.
Если вы не хотите каждый раз указывать имя пользователя и пароль с помощью команды mysqldump, вам просто нужно создать файл в своем домашнем каталоге с учетными данными MySQL. Это отключит запрос пароля mysqldump.
Для этого создайте в домашнем каталоге новый файл:
нано ~ / mysql.txt Добавьте свои корневые учетные данные MySQL, как показано ниже:
[mysqldump]
пользователь = корень
пароль = пароль Сохраните и закройте файл, когда закончите.
Теперь вы можете указать свой файл учетных данных MySQL, используя параметр --defaults-file, как показано ниже:
mysqldump --defaults-file = ~ / mysql.txt wpdb> wpdb_backup.sql .

sql
latest.tgz
args:
chdir: /root/
creates: sql.latest.tgz
- name: db_restore | Check if file exists
stat: path=/root/sql.latest.tgz
register: sql_latest
- name: db_restore | Restore latest DB backup if backup file found
shell: PGPASSWORD={{ dbpassword }} tar -xzOf /root/sentry*.tgz db.sql | psql -U{{ dbuser }} -h{{ pgsql_server }} --set ON_ERROR_STOP=on {{ dbname }}
when: sql_latest.stat.exists
ignore_errors: True
Я мало что могу сделать с Соглашением об именовании, и я знаю, что оно не должно быть числовым, но так оно и есть! Проблема у меня есть в том, что демпинг в порядке, но когда я пытаюсь импортировать…
sql
when: my_database_db_existence | failed
sql.zip | mysql -u root -p%pass% database%
sql
sql 
sql
Увидеть

Для этого плагина сервер не отправляет общедоступные
В
Значение пароля указывать необязательно. Если не указано,
Эта

См. Раздел 6.8, «Поддержка FIPS».
Подробнее см.
Если файл не
mylogin.cnf
раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».
раздел 4.2.2.3, «Параметры командной строки, влияющие на обработку файла параметров».
Типичный



ИЗМЕНЕНИЕ 
Это вызывает вывод дампа

6 и 5.7 вы можете заменить значение
Если вы сделаете
gtid_purged
sql_log_bin = 0
gtid_purged
Это значит, что
Затронутые типы данных:
Эта опция включена по умолчанию. Может быть
Это
sql
Без этого
(Увидеть
..
proc
Это полезно, если вы хотите сбросить только
(Для обходного пути см.
Это делает загрузку файла дампа
По умолчанию - 24 МБ, максимум - 1 ГБ.
Эта опция включена по умолчанию. Отключить
См. Обсуждение
Это приводит к более быстрым вставкам

Это полезно
Это полезно только с транзакционными таблицами
Последовательный
Все эти настройки включены по умолчанию, потому что
..]> my_databases.sql
sql
my.cnf
По сути, это тип резервного копирования, который создается на «логическом» уровне и может использоваться для восстановления содержимого базы данных после события потери данных. В отличие от «физического» резервного копирования двоичных файлов СУБД (которые используются исключительно сервером и не могут быть скопированы без его остановки), дамп базы данных создается через интерфейсы, предоставляемые базой данных.
Плагин MySQL , используемый в нашем программном обеспечении, позволяет делать снимки дампа MySQL, которые можно восстановить, не прерывая работу сервера. Подробнее о резервном копировании MySQL ...
..
.. ”
sql


sql
sql
sql