Написал для себя скрипт дампа MySQL в файлы. Знаю что велосипед, но мне для тренировки. И вот результат на скрине:
Вот сам скрипт:
#!/bin/bash
#
DUMP_FOLDER=${PWD}/dump
DB_USER=root
DB_PASSWORD=root
DB_HOST=localhost
[ -d ${DUMP_FOLDER} ] || mkdir ${DUMP_FOLDER}
DB_LIST=$(echo "SHOW DATABASES;" | mysql --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD})
for DB_NAME in $DB_LIST
do
DB_FOLDER=${DUMP_FOLDER}/${DB_NAME}
[ -d ${DB_FOLDER} ] || mkdir ${DB_FOLDER}
TABLE_LIST=$(echo "USE ${DB_NAME};SHOW TABLES;" | mysql --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD})
for TABLE_NAME in $TABLE_LIST
do
mysqldump --host=${DB_HOST} --user=${DB_USER} --password=${DB_PASSWORD} -B ${DB_NAME} --tables ${TABLE_NAME} > ${DB_FOLDER}/${TABLE_NAME}.sql
done
done
Собственно я создавал только базу bashorg (дамп цитат, выполненный с помощью grab на python).
Служебные данные, типа information_schema не нужны. Заранее имена нужных БД будут неизвестны. Как их исключить?