Задача:
Необходимо создать резервные копии всех баз СУБД 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