Automated MySQL Backup

Here’s one way to create an automated MySQL backup process.

1. Login as root.

2. Create the MySQL option file /root/.my.cnf with the following contents. This will allow you to run mysqldump without passing the password parameter.

	[client]
	password=YOUR_MYSQL_PASSWORD
	Commands:
	> vi /root/.my.cnf

3. Protect your MySQL password by limiting access to /root/.my.cnf.

	Commands:
	> chmod 600 /root/.my.cnf

4. Create a backup script under cron.daily with the following contents. This will create a compressed database dump. The filename will contain the day of the week, which will automatically handle backup rotation.

	mysqldump --defaults-extra-file=/root/.my.cnf -u YOUR_MYSQL_USERNAME YOUR_MYSQL_DATABASE > /root/backup/db/mysql-`date +%a`.sql
	bzip2 -f /root/backup/db/mysql-`date +%a`.sql
	Commands:
	> cd /etc/cron.daily
	> vi mysqlbackup.cron
	> chmod u+x mysqlbackup.cron