If you are in a hosting environment where you are responsible for your own database backups, this is a convenient way to have the server generate a backup file of all of your MySQL databases, compress the file, and e-mail it to the specified address. I’ve added this to the local crontab
so that it runs on a regular schedule. In order for it to work, you should have a MySQL user account created with the appropriate privileges in order to access your database.
In the crontab
, create an entry, as follows, with your customization for both the path to your configuration file and the e-mail address receiving the backup.
mysqldump --defaults-extra-file="/path/to/config/file/.mysqldump.cnf"
--all-databases
-ce
| gzip
| uuencode dbbackup.gz
| /usr/sbin/sendmail my_e-mail_address
In the .mysqldump.cnf
file, provide the username and associated password that can access the database. Secure .mysqldump.cnf
by setting the file permissions 0600
since that file contains your database password in plaintext.
[client]
user=my_database_username
password=my_database_user_password