Mit Bash feststellen ob eine MySQL-DB existiert

Alles, was MySQL betrifft, kann hier besprochen werden.

Mit Bash feststellen ob eine MySQL-DB existiert

Postby glaskugel » 19. September 2009 11:09

Ich möchte ein Baclkupskript machen um einzelne Datenbanken zu sichern. Der DB-Name kann aus dem htdocs-Verzeichnis bestimmt werden. Nun hat aber nicht jede Homepage eine DB. Ich möchte daher abfragen, ob eine MySQL-DB existiert, wenn ja wird gesichert. MySQL-root-PW ist vorhanden.
glaskugel
 
Posts: 21
Joined: 26. October 2008 00:23

Re: Mit Bash feststellen ob eine MySQL-DB existiert

Postby Nobbie » 19. September 2009 12:39

Wenn als Datenbank-Engine "MyIsam" aktiviert ist (das ist meistens der Fall, eine Alternativ wäre "InnoDB"), dann entspricht jede MySQL Datenbank einem kompletten Ordner aus dem data-Verzeichnis (siehe /etc/my.ini) von MySQL. Bei Xampp ist das /opt/lampp/var/mysql, bei anderen MySQL Installationen oft /var/lib/mysql. Und die Dateien innerhalb der jeweiligen Ordner sind die Tabellen, die in dieser Datenbank gespeichert sind, wobei jede Tabelle in drei Dateien aufgegliedert ist (tabelle.frm, tabelle.MYI, tabelle.MYD). Das eine ist die Tabellenbeschreibung (*.frm), das nächste sind die Datensätze (*.MYD) und die dritte Datei sind die Schlüsseldaten (Primary Key, Index usw.).

Wenn man Backups nur für das aktuell laufende System machen will, kann man statt mysqldump auch einfach den o.g. data-Ordner sichern. Bei Releasewechseln usw. ist allerdings das mysqldump-Format portabler, da es als Textformat die Tabellen mit CREATE, INSERT usw. anlegt (und alle Datensätze anlegt). Ansonsten reicht es auch, einfach die gesicherten Ordner in das data-Verzeichnis zurückzuspielen. Das funktioniert sogar teilweise über Releasewechsel hinaus und sogar bei Betriebssystemwechsel (sprich: die Datenbanken unter Linux sind binär kompatible zu den Datenbanken unter Windows).
Nobbie
 
Posts: 6766
Joined: 09. March 2008 13:04


Return to MySQL

Who is online

Users browsing this forum: No registered users and 4 guests