Блог

Note/MySQL: dump всех баз данных

Это маленькое напоминание себе. Как сделать, чтоб mysqldump сделал слепок всех базы-данных в отдельный файл.

Сделать dump в отдельные файлы

В mysqldump есть параметр –all-databases – только данная реализация не очень подходит поскольку записывает весь слепок баз-данных в один файл, но а что если я хочу чтобы каждая база была в отдельном файле.

#!/bin/bash

for dbname in $(mysql -uUser -pPasswd -e 'show databases') 
do
	echo "Dump start $dbname"
	 mysqldump -uroot -pPasswd $dbname > "/w-srv/backup/dump_$dbname.sql"
done

Выризать из dump файла (all-databases) базу в отдельный файл

sed -n '/^-- Current Database: `__YOUR_DATABASE__`/,/^-- Current Database: `/p' all_databases.sql > output.sql