MySQL Backup per PHP

  • Hallo,
    ich bräuchte mal wieder eure hilfe undzwar wollte ich in meine Homepage ein Backup panel einbauen.. für MSSQL & MYSQL Datenbanken
    MSSQL hat einwadfrei geklappt mit hilfe einer Prozedur

    Nur bei MySQL gibt es ein problem, da ich im Web nichts gescheites gefunden habe..
    Als Beispiel:

    Ich möchte das wenn ich die seite "backup.php" das System oder was auch immer ein Backup von meiner Datenbank "panel" macht. (Bzw. wenn ich halt das entsprechende wort in das Script eingebe.)
    Also -> Ich gebe MYSQL in das script ein und das macht ein Backup der MySQL Datenbank panel. Nur wie funktioniert dieser code? Achja ich möchte keine ganze Seite wie dieses MySQL DUmper what ever..

    PHP
    else if($_POST['wort'] == "MYSQL"){
    $sql = 'DROP DATABASE panel';
    $retval = mysql_query( $sql, $con );


    So ähnlich wie das hab ichs gemeint nur das es ein Backup erstellen soll anstatt die Datenbank zu löschen.
    Hoffe mal mir kann jemand weiter helfen
    Danke schon mal!

    [COLOR=#000000][COLOR=#FF8000][CENTER]
    [/CENTER]
    [/COLOR][/COLOR]

  • "$database = 'test';" musst du ändern zu "$database = $_POST['db']".
    Dann befasst du dich noch ein wenig mit der Wirkungsweise und den einzelnen Prozeduren dieses Skripts, baust ein "if $database == 'Blabla'" ein und hast dein gewünschtes Skript. Einzelne Tabellen müsstest du mit

    PHP
    SELECT * INTO OUTFILE dateiname

    extrahieren können, sicher bin ich mir allerdings nicht.

    EDIT: Gefunden habe ich noch

    PHP
    $reply = shell_exec('mysqldump --add-drop-table -c -n -h localhost --user=bkkdigm1 --pass=ot3VNayM digmdb1 content_offline > test.sql');

    - ich bin mir allerdings nicht sicher, ob du damit was anfangen kannst, da du dafür eine mysqldump.exe benötigst.

    [COLOR=Red][/COLOR][CENTER]
    [/CENTER]

  • Dankeschon mal.
    Aber so wie dass

    Zitat

    system("/usr/bin/mysqldump -...

    aussieht ist es doch wohl eher für Linux, was ich wohl vergessen hab zu sagen das es für Windows sein sollte. und eig brauch ich nur so etwas wie das

    Zitat

    BACKUP DATABASE [ACCOUNT_DBF] TO DISK = N'C:\Backups\ACCOUNT_DBF.bak' WITH NOFORMAT, NOINIT, NAME = N'ACCOUNT_DBF-Vollständig Datenbank Sichern', SKIP, NOREWIND, NOUNLOAD, STATS = 10

    Damit es einfach nur schlicht und ergreifend von der Homepage aus ein Backup in ein bestimmten Ordner macht.


    So sähe es momentan aus.. wenn eben dieses shell_exec funktionieren würde

    [COLOR=#000000][COLOR=#FF8000][CENTER]
    [/CENTER]
    [/COLOR][/COLOR]

  • Man kann mit den Zahlreichen MySql Funktionen Tabellennamen, Tabellenfelder
    und natürlich auch Dateneinträge fetchen. Ist zwar sehr umständlich aber damit
    kannst du dan nen Backup String erstellen. Ist bisschen kompliziert, und ich habs
    auch selbst nie versucht aber rein theoretisch möglich. Einfach PHP.net Referenz durchlesen.

  • Würde das denn mit system(..) bei Windows funktionieren? weil das mit usr/bin etc sieht mir eher nach Linux befehlen aus q.q

    [COLOR=#000000][COLOR=#FF8000][CENTER]
    [/CENTER]
    [/COLOR][/COLOR]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!