====== 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;'