MySQL. Создание бэкапа всех баз в отдельные файлы

Все ПО, не вошедшее в другие разделы (почтовые клиенты, прокси-серверы, графические пакеты и пр.)


Модератор: UncleFather

Аватара пользователя
UncleFather
Site Admin
Сообщения: 1490
Зарегистрирован: 17 авг 2004 16:20, Вт
Контактная информация:

MySQL. Создание бэкапа всех баз в отдельные файлы

Сообщение UncleFather »

Задача:

Необходимо создать резервные копии всех баз СУБД MySQL, причем каждую базу записать в отдельный файл.


Решение:

Для создания копии всех баз в одном файле с именем, содержащим текущую дату и время, пользуемся командой:

Код: Выделить всё

"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump" -uUser -pPassword --log-error=MySQLAdminBackupLog.txt --all-databases > Archives_Path\all_databases_%Date:~6,4%%Date:~3,2%.%Date:~0,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%%TIME:~9,2%.sql

Для создания копий всех баз в разных файлах, содержащих текущую дату и время понадобится создать вспомогательный исполняемый (bat) файл следующего содержания:

Код: Выделить всё

"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql" -e "show databases" -s --skip-column-names -uUser -pPassword

Задача этой команды - вывести список всех баз MySQL.

Теперь можно вызвать этот файл из основного и выполнить для каждой базы архивацию:

Код: Выделить всё

for /f %%x in ('Имя_Вспомогательного_Файла.bat') do "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump"  -uUser -pPassword --log-error=MySQLAdminBackupLog.txt %%x > Archives_Path\%%x_%Date:~6,4%%Date:~3,2%.%Date:~0,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%%TIME:~9,2%.sql

Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram

Изображение
Изображение
Изображение
Изображение