MySQL: Datenbank tabellenweise sichern

MySQL
30.04.2015

Will man eine Tabelle aus einer Datenbank sichern, dann lässt sich das mit dem Kommandozeilentool mysqldump recht einfach bewerkstelligen.

Will man eine ganze Datenbank tabellenweise sichern, dann kann ein wenig bash-scripting schnell weiter helfen.

Tabelle sichern

Eine einzelne Tabelle schreibt sich mit einem Einzeiler reht schnell:

mysqldump -u [user] -p[password] -h [host] --add-drop-table [database] > [output]

Datenbank tabellenweise sichern

Um eine Datenbank tabellenweise zu sichern, kann man das Kommando für jede Tabelle einzels ausführen. Hat man jedoch eine Datenbank mit vielen Tabellen oder will man gar mehrere Datenbanken auf einmal sichern, dann wir das ganz schnell recht mühselig.

Ein kleines Script ist hilfreich:

#!/bin/bash

function createDir() {
    if [ ! -d  $1 ]
    then
         mkdir $1
    fi
}

DB_user=[user]
DB_pwd=[password]
DB_host=[host]

Databases=($(mysql -u $DB_user -p$DB_pwd -h $DB_host -e 'show databases'))

for((i=0;i<${#Databases[*]};i++));
do
    Database=${Databases[$i]}
    echo $Database
    DIR=$Database
    createDir $Database
    Tables=($(mysql -u $DB_user -p$DB_pwd -h $DB_host $Database -e 'show tables'))
    for((j=0;j<${#Tables[*]};j++));
    do
         echo ${Tables[$j]}
         Table=${Tables[$j]}
         OUTPUT=$DIR/$Table.sql                                                                                             
         echo $OUTPUT                                                                                                       
         mysqldump -u $DB_user -p$DB_pwd -h $DB_host --add-drop-table --skip-extended-insert $Database $Table > $OUTPUT     
    done                                                                                                                   
done

Will man dann die Tabellen wieder importieren, dann hilft dieses Script:

#!/bin/bash

DIR="done"
mkdir $DIR

DB=[database]
PWD=[password]
USR=[user]

for i in *.sql
do
    mysql -u $USR -p$PWD $DB < $i
    mv $i $DIR/
done
comments powered by Disqus

Rauchen

Rauchen verursacht...

Rauchen tötet

... Lungen-, Zungen- und Brustkrebs

... Fußpilz, Durchfall und Mundgeruch

... Krumme Finger, Gicht und Nabelbruch

... Karies, Krätze und Blasenschwäche

... Mund-, Rachen- und Kehlkopfkrebs

A ? B C D E F G H I J K L M N O P Q R S T U V W Z