Hallo!
Häufig will man alle Datenbanken auf einem Server sichern. Das geht mit der Option "--all-databases" von mysqldump. Dabei werden jedoch alle Datenbanken in den gleichen Dump gespeichert, was bei einem Restore sehr mühsam sein kann.
Deshalb habe ich für Linux (Shellscript) und Windows (Windows Scripting Host) je ein Script geschrieben, welches jede Datenbank in eine seperate Datei speichert.
Die Linux-Variante:
Die Windows-Variante:
Sollte selbsterklärend sein. Vielleicht kann es ja jemand brauchen.
Häufig will man alle Datenbanken auf einem Server sichern. Das geht mit der Option "--all-databases" von mysqldump. Dabei werden jedoch alle Datenbanken in den gleichen Dump gespeichert, was bei einem Restore sehr mühsam sein kann.
Deshalb habe ich für Linux (Shellscript) und Windows (Windows Scripting Host) je ein Script geschrieben, welches jede Datenbank in eine seperate Datei speichert.
Die Linux-Variante:
Code:
#!/bin/sh
# Backupscript fuer MySQL
USER=root
PASSWD=geheim
BACKUPDIR=/backup/mysql
DATABASES=`mysql -u$USER -p$PASSWD -e"show databases"`
for DATABASE in $DATABASES
do
if [ $DATABASE != "Database" ]; then
mysqldump -u$USER -p$PASSWD $DATABASE > $BACKUPDIR/$DATABASE"_dump"
fi
done
Die Windows-Variante:
Code:
'MySQL Backup Script
'sichert alle vorhandenen MySQL-Datenbanken in einzelne Dateien
'ausführen mit "cscript mysql_backup.vbs"
'Konfiguration
server = "127.0.0.1"
user = "root"
pw = "geheim"
mysql = "c:\programme\mysql\bin\mysql.exe"
mysqldump = "c:\programme\mysql\bin\mysqldump.exe"
backupdir = "c:\backup\mysql\"
'ab hier nichts mehr ändern
Set objShell = CreateObject("WScript.Shell")
'Datenbanken auflisten
'WScript.Echo mysql & " --host=" & server & " -u" & user & " -p" & pw & " -e""SHOW DATABASES"""
Set objWshScriptExec = objShell.Exec(mysql & " --host=" & server & " -u" & user & " -p" & pw & " -e""SHOW DATABASES""")
Set objStdOut = objWshScriptExec.StdOut
Do Until objStdOut.AtEndOfStream
db = objStdOut.ReadLine
If db <> "Database" Then
dateiname = db & "_dump.txt"
WScript.Echo "sichere Datenbank " & db & " nach " & backupdir & dateiname
objShell.Run(mysqldump & " --host=" & server & " -u" & user & " -p" & pw & " --result-file=" & backupdir & dateiname & " " & db)
End If
Loop
Sollte selbsterklärend sein. Vielleicht kann es ja jemand brauchen.