Бэкап базы MySQL из Docker

В Docker контейнеры часто помещают базы данных MySQL. Иногда это делается из-за того, что на одной операционной системе может работать только одна версия MySQL. И единственный выход для установки нескольких - это использование контейнеров.

Сейчас рассмотрим как же можно сделать дамп базы из такого контейнера и загрузить его обратно.

Создание дампа базы из контейнера

Для создания бэкапа базы данных, которая находится в контейнере, необходимо выполнить команду "mysqldump" внутри него. Для этого используется следующая команда:

docker exec -it id_контейнера mysqldump -u root --password=pass DB > /дамп.sql

Перед выполнением этой команды в ней необходимо заменить "id_контейнера" на нужный id (его можно узнать из вывода списка контенйеров командой "docker ps -a"). Также необходимо указать нужный путь и название файла дампа вместо /дамп.sql, куда будет сохранена информация из базы (вне контейнера). И вставить нужного пользователя вместо "root", пароль вместо "pass" и название базы вместо "DB".

Если требуется сделать бэкап не только одной базы, а всех баз в MySQL вместе с индексами и триггерами, то можно выполнить команду:

docker exec -it id_контейнера mysqldump --all-databases --routines --triggers > /дамп.sql

Восстановление дампа в базу внутри контейнера

Чтоб загрузить сохранённый дамп обратно в базу, необходимо выполнить команду:

cat /дамп.sql | docker exec -i id_контейнера /usr/bin/mysql -u root --password=pass DB

Суть в том, что файл дампа читается с помощью команды "cat", а затем всё передаётся в базу внутри контейнера. В этой команде, как и в предыдущем примере, необходимо вставить нужные значения вместо "id_контейнера", имени пользователя "root", пароля "pass" и названия базы данных "DB".
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Смотрите наш видео подкаст на эту тему:
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб

⇡ наверх