If you execute mysqldump manually, mysqldump will prompt you for password. If you setup mysqldump via cronjob, you need to find a solution to disable the password. I’ve setup mysqldump to backup my db via cronjob without password. All you need to do is just to add a file in your home directory and it will disable the mysqldump password prompting.
To setup mysqldump without password in Cronjob, follow the steps below:-
- Start your terminal and login to your server
- Create a .my.cnf file in the home directory
- Copy the content below and replace with your mysql username and password.
[mysqldump] user = mysqluser password = secret
- Now change the file permission to 600 to prevent other user from reading it
chmod 600 ~/.my.cnf
- Now you can try to execute mysqldump and system will not prompt you for password by now
- To setup the cronjob
Append the line below to your crontab and it will run mysqldump every night at 12:00am
0 0 * * * mysqldump -u mysqluser -h localhost --all-databases | gzip -9 > alldb.sql.gz > /dev/null
* for more information on mysql backup, refer to how to backup mysql database