Export all databases from a MySQL server

If you want to export all databases from a mysql server you can use the following script:

#!/bin/bash

# Configurations (Change values according to your needs)
DB_HOST='127.0.0.1'
DB_USER='root'
DB_PASSWORD=''

# This script can be used as cronjob and save the database dumps 
# into a directory that reflects the current date
dirname=$(date +%Y-%m-%d)

echo "Exporting ${dirname}"

mysql -h$DB_HOST -u$DB_USER -p$DB_PASSWORD -e "show databases" | grep -Ev 'Database|schema|mysql|sys' | while read dbname;
do
	echo "Dumping $dbname"
	if [[ ! -d $dirname ]];then
		mkdir $dirname
	fi
	mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASSWORD $dbname > ./$dirname/$dbname.sql
	gzip ./$dirname/$dbname.sql
done