Here is the easiest way to run a daily backup of your database using linux crontab. Thanks to our everyday increasing mailbox size (Thanks Gmail) and their nature to be quite safe for saving document, let’s use them to store the full backup of all our Mysql database!


  • Having a shell access to your linux box
  • Creating a user with limited mysql rights: SELECT and LOCK_TABLES is enough, For example a user backup_user with a password ChhdeqyqUzd75687fOnmYar
  • Installing Mpack: Tools for encoding/decoding MIME messages. Mpack and munpack are utilities for encoding and decoding (respectively) binary files in MIME (Multipurpose Internet Mail Extensions) format mail messages. For compatibility with older forms of transferring binary files, the munpack program can also decode messages in split-uuencoded format.

Edit your crontab

crontab -e 

and put inside on one line the following

0 1 * * * /usr/bin/mysqldump -ubackup_user –pChhdeqyqUzd75687fOnmYar yourdb |
gzip > /database_`date +'%m-%d-%Y'`.sql.gz ;
mpack -s "Databases backup"
-c application/gzip /database_`date +'%m-%d-%Y'`.sql.gz This email address is being protected from spambots. You need JavaScript enabled to view it.

You can replace the word yourdb with your tablename or --all-databases to dump all database. With the above line a backup will be run at 1AM every day and sent in your mailbox.

You might like also

Recovering/Resetting a MySQL root password
In this small post, I’ll show you how to reset the MySQL password in case you lost it. You’ll need at least the root access of the machine where MySQL run. Reset the MySQL root password Resetting the root password of a MySQL database in case you lost it, is really easy.  # /etc/init.d/mysql stop Now start the database in the background, via the mysqld_safe command. Start MySQL with a flag to tell it to ignore any username/password restrictions which …
3642 Days ago
MYSQL tuning with mysqlreport
I found this interesting tool (beside while trying to optimizing my server setting for #Joomla! mysqlreport mysqlreport makes an easy-to-read report of important MySQL status values. Unlike SHOW STATUS which simply dumps over 100 values to screen in one long list, mysqlreport interprets, formats, and then nicely presents the values in report readable by humans. Numerous example reports are available at the mysqlreport web page. The benefit of mysqlreport is that it allows you to very quickly see a …
4036 Days ago
Optimizing MySQL jdbc under windows using named pipe
According to this MySQL page here, you can win 30 to 50% more performances using MySQL jdbc named pipe! Named pipes only work when connecting to a MySQL server on the same physical machine as the one the JDBC driver is being used on. In simple performance tests, it appears that named pipe access is between 30%-50% faster than the standard TCP/IP access. As default, when you install mySQL on windows using the installer, TCP IP is the default option. …
4495 Days ago
Optimizing mysql with
Digging into mySQL settings can be time consuming, like with any other component. Most of the time, and just by changing a few settings, you can expect a performance increase. The problem is to change what, and to which value. This is where help you: Get this script, upload it, unzip it, and install it in your /etc folder. Then run it from the command line by entering ./path-to-file/ MySQL Server must run a few days or weeks, …
4496 Days ago
No Thumbnail was found
One of the most important rule is to always backup your data with multiple tools on different medium, just in case of. Just imagine 5 minutes that you lose everything, what you have done in the last 3 months on your homepage..ok still not crying? you loose hundred of hours of work, nightly debugging, customizations, hours of Gimp/Photoshop, lengthy and good written articles... With #Joomla! and now with nearly all CMS, the most important thing to backup is the database. …
4496 Days ago
No Thumbnail was found
I publish here some of my server settings in the hope that it will also help others... Server Setup AMD64 1 Gb RAM, #Linux OSS 10.0, 7 #Joomla instances (one being with 250'000 unique visitors per months), 1 simple machine forums, 3 gallery2 install All MySQL tables are myISAM (table locking instead of row loacking in innodb, myIsam make sense as ther is more read then insert) # vi in /etc/my.cnf Below the diff command between a standard MySQL …
4496 Days ago