How to dump all mysql datbases one by one

Discussion in 'MySQL' started by jasonsc, Apr 22, 2008.

  1. #1
    I need to dump all databases one by one.

    This command:

    mysqldump --all-databases

    makes me a single large file that is apparently all the databases in one file. But I want to dump and save each database in separate file.

    I have surfed the net but haven't really found any good solution.
    Any ideas?

    Thanks.
     
    jasonsc, Apr 22, 2008 IP
  2. mwasif

    mwasif Active Member

    Messages:
    816
    Likes Received:
    23
    Best Answers:
    1
    Trophy Points:
    70
    #2
    Use

    mysqldump dbname > sql_file.sql
    Code (markup):
     
    mwasif, Apr 22, 2008 IP
    jasonsc likes this.
  3. jasonsc

    jasonsc Well-Known Member

    Messages:
    1,696
    Likes Received:
    56
    Best Answers:
    0
    Trophy Points:
    165
    #3
    yes, but than I have to manually put every database name in. I have like 50 databases. Is there a command I can list the names and than pipe them to mysqldump?

    rep given bdw
     
    jasonsc, Apr 22, 2008 IP
  4. Petey

    Petey Peon

    Messages:
    68
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    0
    #4
    Hi jasonsc,

    If you are able to get a command line session then the following code will dump each of your databases into a separate dump file:

    for database in `mysql -e 'show databases' | grep -v 'Database' `; do echo "Dumping $database"; mysqldump $database > dump_$database.sql; done

    HTH
     
    Petey, Apr 22, 2008 IP