mysqldump jede Datenbank einzeln via script?

MySQL, PostgreSQL, SQLite
marco.kobek
Posts: 40
Joined: 2004-06-11 20:45

mysqldump jede Datenbank einzeln via script?

Post by marco.kobek » 2005-10-21 19:35

`Hallo.
Ich suche ein Script welches jede Datenbank einzeln dumpt und sichert und nicht via --all-databases alles in ein großes dump packt.

Da user teilweise datenbanken anlegen dürfen usw. kann ich natürlich nicht per Hand dauernd ein script pflegen wo alle datenbanken drin stehen.

hat jemand sowas?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11134
Joined: 2003-02-27 01:00
Location: Hamburg

Re: mysqldump jede Datenbank einzeln via script?

Post by Joe User » 2005-10-21 20:03

RTFM! (s/--all-databases/$database/).
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

hornox
Posts: 139
Joined: 2005-09-22 23:09

Re: mysqldump jede Datenbank einzeln via script?

Post by hornox » 2005-10-21 20:53

Code: Select all

for db in `find /var/lib/mysql/ -mindepth 1 -mindepth 1 -type d -printf %f\\n`; do
  mysqldump --opt $db | bzip2 -c > backup-$db-`date -I`.sql.bz
done
Ich habe keine Ahnung was passiert wenn die Datenbanknamen Sonderzeichen enthalten (bei bash Skripten gibt's bei sowas schnell Sicherheitslücken :(), also kontorliere das vorher nochmal. Eine ~/.myconf Datei mit [mysqldump]-Abschnitt in dem User und Password stehen mußt du auch noch anlegen.

Eine saubere Lösung die mit Sonder- und Leerzeichen klar kommt und die die Datenbanknamen per MySQL und nicht per `find` Abfrage würde mich auch interessieren :roll:
@Joe User: Es geht dem OP darum das alle $database vom Skript ermittelt werden sollen...

braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner

Re: mysqldump jede Datenbank einzeln via script?

Post by braindead » 2005-10-25 20:43

echo "show databases" | mysql -u <user> -p <passwd>

meinst du sowas?