I want to take backup of Xampp database available in /opt/lampp/var/mysql `but I am unable to do it. I used below command

/opt/lampp/htdocs/vivek.s$ sudo mysqldump -u root -p vive.se > 07feb.sql


/opt/lampp/htdocs/vivek.s$ sudo mysqldump -h root -u root -p vive.se > 07feb.sql

Result is same

bash: 07feb.sql: Permission denied

Then I used

sudo -s

sudo mysqldump -u root -p vive.se > 07feb.sql

Result is

sudo: mysqldump: command not found

and it created a Empty file named 07feb.sql in /opt/lampp/htdocs/vivek.s

What is wrong while I saw my friend using same command and he got database backup of 95 MB. What should I try.


  • use a directory where you can store a file. the ">" part has no permission to write. Regarding the 2nd one: directory to mysqldump is not in the PATH. Use an absolute path – Rinzwind Feb 7 at 18:19
  • @Rinzwind, It worked. Thanks – Vivek Sharma Feb 14 at 7:53
up vote 3 down vote accepted

The problem is that you do not have permission to write to /opt/lampp/htdocs/vivek.s as your normal user. Running mysqldump as root elevates mysqldump (unnecessarily), but the redirection happens with the permissions of the shell - running as your regular user.

There's a few workarounds:

  1. Start a root shell by e.g. sudo -i or sudo -s. You should not use sudo to run the next command - mysqldump.
  2. Use tee:

    mysqldump -u root -p vive.se | sudo tee 07feb.sql > /dev/null

This will run the process tee as root, writing one copy to file, and redirecting stdout to /dev/null as we don't need it.

Another workaround would be to write the backup to a location where your user has write permission, for instance your home directory.

  • It also worked for me. Thanks – Vivek Sharma Feb 14 at 7:54

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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