MySQL Datenbank automatisch sichern lassen

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

MySQL Datenbank automatisch sichern lassen

Beitrag von mgutt »

Erstellt im Ordner "admin/" ein Verzeichnis z.B.: "backup/" (der Name ist egal. Umso komplizierter umso sicherer ;))

Dann erstellt Ihr in dem neuen Ordner eine Datei mit wieder einem beliebigen Namen. Im Beispiel "dump.php" genannt.

Dessen Quellcode schaut so aus:

Code: Alles auswählen

<?
exec("mysqldump -u USERNAME -p PASSWORT --add-drop-table TABELLENNAME >dump" . date('Ymd') . ".sql");
exec("gzip dump" . date('Ymd') . ".sql");
echo "fertig...";
?>
Dort ersetzt Ihr nun "USERNAME", "PASSWORT" und "TABELLENNAME" mit Euren MySQL-Daten.

Jetzt könnt ihr das Backuptool wie folgt aufrufen: (das erste Mal sollte man das in jedem Fall machen, damit man weiß, dass es wirklich geklappt hat)
domain.com/admin/backup/dump.php

Je nachdem wie groß Eure Datenbank ist, dauert es ein paar Minuten bis alle Daten gesichert wurden. Wenn "fertig..." auf dem Bildschirm erscheint, dann wurde in Eurem Verzeichnis eine Datensicherung angelegt.

Jetzt könnte man in einem bestimmten Rhythmus hingehen und die Datei von Hand aufrufen. Das ist uns aber zu lästig. Dafür gibt es Cronjobs. Könnt Ihr auf Eurer Seite keine Cronjobs erstellen? Dann gibt es dafür auch kostenfreie Dienste. z.B.: den von www.cronjob.de (Da der Zugriff dann über eine externe Seite erfolgt, sollte man das "backup/" Verzeichnis woanders hin verfrachten und auch ein anderes Passwort per .htaccess dort vergeben)

Dort gibt ihr dann die gesamte Url an und den Rhythmus, in dem die Datensicherung erfolgen soll. Das wars.. schon habt ihr eine automatische Datensicherung :D

Sicherheitshinweise:
Das Verzeichnis "admin" ist ein äußerst sensitives Verzeichnis, dass man mit allen Mitteln vor fremden Zugriff schützen sollte. Auch sollte man die Datensicherung schützen. Am besten das Verzeichnis "admin/" per .htaccess Passwortabfrage. Wie das geht steht hier:
http://www.phpbb.de/doku/kb/artikel.php ... l=htaccess

Auch sollte man im Ordner "backup/" eine index.htm anlegen mit folgendem Inhalt:

Code: Alles auswählen

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

</body>
</html>
Das ist aus Sicherheitsgründen ebenfalls notwendig, damit ein Hacker keinen Rootzugriff erhaschen kann (hören-sagen ;) ).
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Re: MySQL Datenbank automatisch sichern lassen

Beitrag von saerdnaer »

mgutt hat geschrieben:Das ist aus Sicherheitsgründen ebenfalls notwendig, damit ein Hacker keinen Rootzugriff erhaschen kann (hören-sagen ;) ).
Jo, gut das du das "hören-sagen" dazu geschrieben hast, denn das ist absoluter Unsinn. ;-)

Kann man den Diensten auch nen Username/Passwort Kombination geben, die sie via HTTP Auth übergeben, damit nur sie die entsprechende Datei aufrufen können?

(Oder hat schon mal jemand versucht ne URL in der Form http://Username:Passwort@domain.com/adm ... p/dump.php einzugeben?)

MfG ah
errt
Mitglied
Beiträge: 490
Registriert: 19.03.2006 08:24

Beitrag von errt »

Klingt ja gut. Aber kann man das auch mit anderen Befehlen als "exec" machen? Scheint so, als hätte mein Host das deaktiviert...
subreal
Mitglied
Beiträge: 8
Registriert: 15.09.2006 23:17
Wohnort: Bad Honnef
Kontaktdaten:

Beitrag von subreal »

Hallo zusammen!!

Ich vermisse hierbei die Angabe zum DB-Host

Code: Alles auswählen

<? 
exec("mysqldump -u USERNAME -p PASSWORT --add-drop-table TABELLENNAME >dump" . date('Ymd') . ".sql"); 
exec("gzip dump" . date('Ymd') . ".sql"); 
echo "fertig..."; 
?>
Wie setze ich den hier ein??

LG
Subreal
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2448
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

errt hat geschrieben:Klingt ja gut. Aber kann man das auch mit anderen Befehlen als "exec" machen? Scheint so, als hätte mein Host das deaktiviert...
ev. mit system(), falls der aktiviert ist.

Noch was:
Wenn man die Sicherung mit einer Ausgabe einer ev. Fehlermeldung haben möchte, falls etwas nicht klappt, dann ist diese Variante geeignet:
http://www.phpbb.de/doku/kb/artikel.php ... =db_export
(ebenso steht dort auch der Import dabei)
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Beitrag von Mahony »

Hallo
Wozu das Rad neu erfinden. Mit dem >>>MySQLDumper<<<
kann man schon seit jeher automatisierte Backups machen (per Cronjob) und man kann sich die fertigen Backups sogar an seine E-Mail Adresse senden lassen.




Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
Gumfuzi
Ehemaliges Teammitglied
Beiträge: 2448
Registriert: 26.03.2004 22:25
Wohnort: Linz, AT
Kontaktdaten:

Beitrag von Gumfuzi »

damit hatte ich leider immer doppelte Einträge beim Rücksichern - k.A. warum, aber ich nehme nun das obige Skript, damit funzt es, und das schneller als der Dumper.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

subreal hat geschrieben:Ich vermisse hierbei die Angabe zum DB-Host

Code: Alles auswählen

<? 
exec("mysqldump -u USERNAME -p PASSWORT -h HOST --add-drop-table TABELLENNAME >dump" . date('Ymd') . ".sql"); 
[...]
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
thoha
Mitglied
Beiträge: 372
Registriert: 11.01.2006 19:28
Wohnort: Oetwil an der Limmat CH
Kontaktdaten:

Re: MySQL Datenbank automatisch sichern lassen

Beitrag von thoha »

mgutt hat geschrieben:Erstellt im Ordner "admin/" ein Verzeichnis z.B.: "backup/" (der Name ist egal. Umso komplizierter umso sicherer ;))

Dann erstellt Ihr in dem neuen Ordner eine Datei mit wieder einem beliebigen Namen. Im Beispiel "dump.php" genannt.

Dessen Quellcode schaut so aus:

Code: Alles auswählen

<?
exec("mysqldump -u USERNAME -p PASSWORT --add-drop-table TABELLENNAME >dump" . date('Ymd') . ".sql");
exec("gzip dump" . date('Ymd') . ".sql");
echo "fertig...";
?>
Dort ersetzt Ihr nun "USERNAME", "PASSWORT" und "TABELLENNAME" mit Euren MySQL-Daten.
Wie muss das Script aussehen, wenn ich eine ganze Datenbank und nicht nur eine Tabelle Backupen möchte?
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“