mysql – sichern von Prozeduren, Funktionen und Triggern
MySQL 5 kommt mit vielen netten neuen Features, wie z.B. stored procedures oder triggers.
Kurz soll erläutert werden, wie man mittels mysqldump Prozeduren, Trigger etc. sichern kann.
mysqldump sichert via default alle trigger aber KEINE Prozeduren/Funktionen. Für das Verhalten von mysqldump sind 2 Optionen verantwortlich:
- –routines – Defaultwert ist FALSE
- –triggers – Defaultwert ist TRUE
Also wenn zusätzlich zu den Triggern, die Prozeduren mit gesichert werden sollen, muss die Option –routines dem Script etc. mit übergeben werden.
mysqldump <mysqldump optionen> --routines > outputfile.sql
Nehmen wir an, wir wollen nur die gespeicherte Prozeduren und Trigger sichern und nicht die MySQL-Tabellen und Daten (dies kann nützlich sein, wenn diese z.B. geändert werden oder diese auf einer anderen Datenbank importiert werden soll, der bereits die Daten, nicht aber die gespeicherten Prozeduren und / oder Trigger enthält), dann sollten wir folgendes tun:
mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql
Dies sichert allerdings nur die Prozeduren,Trigger und Funktionen der angegebenen datenbank <database>. Um diese zu importieren benutzen wir folgenden Befehl:
mysql <database> < outputfile.sql