Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am running a mysqldump via a bash script and have encountered a problem with a password that contains special characters.

mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE | 
                                gzip > /home/USERNAME/backups-mysql/BACKUP.gz

How do I escape the password?

share|improve this question
up vote 5 down vote accepted

Even better, don't put the username or password on the command line where it can be seen by anyone who can do ps -ef.

Create a control file named something like /etc/mysqldump.cnf:


...where client is literal (not the name of your server) and YOUR_MYSQL_ROOT_PASSWORD is... well... your mysql root password.

Then invoke like this:

mysqldump --defaults-file=/etc/mysqldump.cnf DATABASE |                                 gzip > /home/USERNAME/backups-mysql/BACKUP.gz

Personally my invocation is more like this:

NOW=`perl -e 'print time;'`
cd /opt/backup/mysql
mkdir $NOW
for i in `echo "show databases" | mysql -u root --password="MySqlRootPassword" | grep -v Database`; do
        mysqldump --defaults-file=/etc/mysqldump.cnf --databases $i --opt > $NOW/$i.dump
tar cfpz $NOW.tgz $NOW
du -sh $NOW $NOW/* > $
rm -rf $NOW

I've never figured out how to use a similar --defaults-file parameter for mysql, however since this command runs fairly quickly the risk of exposure is much lower... although really that should be fixed.

share|improve this answer
brilliant answer, thank you – psynnott Mar 27 '10 at 17:21
For something similar to using --defualts-file for mysql, see – Steven T. Snyder Dec 28 '11 at 21:41
mysqldump -hlocalhost -uUSERNAME -p'PA$$W0RD' DATABASE | 
                                gzip > /home/USERNAME/backups-mysql/BACKUP.gz

It works?

share|improve this answer
Yes, this worked. – psynnott Mar 25 '10 at 11:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.