Dies ist eine alte Version des Dokuments!


Backup und Restore

Die Sicherung einer Datenbank kann mit dem Befehl mysqldump erfolgen.
Beim Wiederherstellen müssen neben der Datenbank noch Benutzer und dessen Rechte wiederhergestellt werden.

Backup-Benutzer erstellen

Zum Sichern der DBs sollte ein Benutzer verwendet werden, welcher die DBs nur lesen kann.

CREATE USER '<USERNAME>'@'localhost' IDENTIFIED BY '<PASSWORD>';
GRANT SELECT, SHOW VIEW, LOCK TABLES, RELOAD, PROCESS, TRIGGER, EXECUTE, REPLICATION CLIENT, EVENT ON *.* TO '<USERNAME>'@'localhost';
FLUSH PRIVILEGES;

Backup

Ein einfaches Backup einer Datenbanken kann wie folgt erstellt werden:

mysqldump -u<USERNAME> -p<PASSWORD> > <DB_NAME>.sql
für eine Bestimmte Datenbank einfach den Schalter ''-B <DATENBANKNAME>'' hinzufügen.
 
===== Restore =====
Hier ein einfaches Script zum wiederherstellen der Datenbank und des entsprechenden Benutzers und aller Rechte für die wiederhergestellte Datenbank.
Es wird davon ausgegangen, dass sich der Dump im Verzeichnis ''/tmp'' befindet. Den Pfad bei Bedarf einfach ändern.
<code bash>#!/bin/bash
SRCDIR="/tmp"
read -p "Datenbankname? " DB_NAME
read -p "Benutzername? " USER_NAME
read -p "Passwort? " USER_PWD
read -p "Hostname? " HOST_NAME
 
echo "Erstelle Datenbank."
mysql -uroot -p -e "create database ${DB_NAME};"
echo
echo "Stelle Sicherung für ${DB_NAME} wieder her."
mysql -uroot -p -B ${DB_NAME} < ${SRCDIR}/${DB_NAME}.sql
echo
echo "Erstelle Benutzer ${USER_NAME}."
mysql -uroot -p -e "create user '${USER_NAME}'@'${HOST_NAME}' identified by '${USER_PWD}';"
echo
echo "Setze Rechte für Datenbank ${DB_NAME} für Benutzer ${USER_NAME}."
mysql -uroot -p -e "grant all privileges on ${DB_NAME}.* to '${USER_NAME}'@'${HOST_NAME}';"
echo
echo "Mache Benutzerrechte bekannt."
mysql -uroot -p -e 'flush privileges;'
Navigation
Drucken/exportieren
QR-Code
QR-Code Backup und Restore (erstellt für aktuelle Seite)