Skip to main content

Script - MySQL Dump Databases Separated by DB Name

#!/bin/bash

DUMP_EXEC="mysqldump" #path to mysqldump
MYSQL_EXEC="mysql" #path to mysql

MYSQL_USER="root" #db user
MYSQL_PASSWORD="" #db password

databases="$MYSQL_EXEC -u$MYSQL_USER"
if [ "$MYSQL_PASSWORD" ]; then
    databases="$databases -p$MYSQL_PASSWORD"
fi
databases="$databases -e 'show databases'"

eval $databases | while read dbname
    echo "Dumping database: $dbname"
    do `eval "$DUMP_EXEC --max_allowed_packet=1G -uroot --complete-insert '$dbname' > '$dbname.sql'"`
done