Is it possible to have complete backup of mysql database server from command line?
$ mysqldump -h localhost -u username -p database_name > backup_db.sql
I can use the line above but it is just for one db in the server, can i have a complete backup of the all databases into one backup file?
Or is there some command which serializes this process?
something like below (i added -all which is most probably wrong):
$ mysqldump -u username -h localhost -p -all | gzip -9 > backup_db.sql.gz
Thanks.
Solution 1:
Use the --all-databases option, it causes all tables in all databases to be dumped:
mysqldump -u username -h localhost -p --all-databases > all_databases.sql
Solution 2:
In addition, I would suggest setting up a my.cnf file so that your password is not visible in the process list. Check this out. It will help you and prevent you from having your SQL DB hacked by anyone else that might have access to your system.
Solution 3:
I would suggest LVM snapshots for backups of "all databases" as the lock time is likely to be high. However, the displayed lack of investigating the usage string or "man mysql<^M>/all
" makes me feel it may be irresponsible to make such a suggestion.
~$ mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help