====== 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 ''@'localhost' IDENTIFIED BY '';
GRANT SELECT, SHOW VIEW, LOCK TABLES, RELOAD, PROCESS, TRIGGER, EXECUTE, REPLICATION CLIENT, EVENT ON *.* TO ''@'localhost';
FLUSH PRIVILEGES;
===== Backup =====
Ein einfaches Backup einer Datenbanken kann wie folgt erstellt werden:
mysqldump -u -p > .sql
für eine Bestimmte Datenbank einfach den Schalter ''-B '' 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.
#!/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;'