Backup der Datenbank

brainsucker

Erfahrenes Mitglied
Hallo, ich habe folgendes Vorhaben und benötige ein paar Tipps, Ideen Vorschläge und Anregungen.

Ich habe ein Datenbank mit ca 40 Tabellen. An der Struktur wird sich nichts mehr ändern. Ich möchte nun ein PHP Script anfertigen über welches man den Inhalt aller Tabellen in ein .sql oder .txt file schreiben kann.

Klasse wäre natürlich wenn man angeben kann welche Tabellen existieren, und welche gesichert werden sollen.

Hab leider absolut keine Ahnung welche Funktionen ich dafür verweden kann / soll, geschweige denn wie ich da am besten vorgehe. Vielleicht hat ja jemand von Euch eine Idee.

MysqlDumper oder ähnliche Backup Scripts möchte ich umgehen da ich das Script gerne mal selbst schreiben würde.
 
Klasse wäre natürlich wenn man angeben kann welche Tabellen existieren, und welche gesichert werden sollen.

Dazu müßtes du natürlich voher wissen welche Tabellen du hast und welche davon du sichern willst.

Wenn du alles sichern möchtes dann gibst einen netten SQL befehl der lautet SHOW TABLES FROM Datenbankname
Wenn dann alle Tabellen bekannt sind mußte nur noch den rest von der Db auslesen und anschliesend in eine Dateischreiben.

Weitere hilfreiche Sql befehle dazu
SHOW FIELDS FROM Tabellenname
SHOW KEYS FROM Tabellenname


Mfg Splasch
 
Hi,

ich arbeite mit phpmyadmin ja, aber ich möchte gerne das Script in mein admincenter integrieren um auf phpmyadmin zu verzichten.

Wenn dann alle Tabellen bekannt sind mußte nur noch den rest von der Db auslesen und anschliesend in eine Dateischreiben

Wie meinst du das? Bzw wie mach ich das? Stehe grad bissl auf dem Schlauch
 
ah.. ok.. dafür gibt es einen SQL-Befehl. um die ganze DB zu backupen.. dazu würde ich ins SQL-Forum gehen. Wie man SQL-Befehle in php auszuführen weisst du ja..


Probiers mal damit:

mysqldump -u<user> -p<password> --database <datenbank> > backup.sql
 
Zuletzt bearbeitet:
Siehe oben den Betrag. Ich hab den noch Ediert und Dir parr Sql befehl hinzugefügt.
Auslesen mußt auch die Tabellen struktur, also welche Spalte Primeray key ist welche spalten wechlen datentyp hat und die Länge des Datentyps.

Mfg Splasch
 
Zuletzt bearbeitet:
hmm, ein Beispiel wäre die Klasse in phpMyAdmin an ;) vielleicht hilft dir das auch weiter ^^ (die class.table.php und evtl. zip.lib.php dürften dich interessieren)

sonst fallen mir nur folgende Dinge ein:

(wie oben prinzipiell schon geschrieben wurde) :
PHP:
<?php
system("/usr/bin/mysqldump -uUSERNAME -pPASSWORT -h localhost DATENBANKNAME > ".dirname(__FILE__)."/dump.sql", $fp);
if ($fp==0) echo "Daten wurden erfolgreich exportiert"; else echo "Es ist ein Fehler aufgetreten";
?>

oder falls der Server GZip-Komprimierung unterstützt:
PHP:
<?php
system("/usr/bin/mysqldump -uUSERNAME -pPASSWORT -h localhost DATENBANKNAME | gzip > ".dirname(__FILE__)."/dump.gz", $fp);
if ($fp==0) echo "Daten wurden erfolgreich exportiert"; else echo "Es ist ein Fehler aufgetreten";
?>

Edit: auf http://www.phpclasses.org/ findest du einige gut erklärte Klassen (ohne, dass ich für diese Seite Werbung machen möche!), die könnten dir auch weiter helfen ;) (allerdings ist eine Anmeldung dort erforderlich)
 
Zuletzt bearbeitet:
Ich glaub nu schnall wie das geht :D
Is das denn IMMER /usr/bin/mysqldump !?
Bin mit meinem Space zur Zeit noch bei dem Free-Hoster funpic... Deswegen kann ich mir leider die phpmyadmin files net anschaun... Müsste dazu erst hier wida XAMPP drauf machen ^^
Den Link bin ich nu nachm lesen/antworten am schauen...
 
Zurück