2012-03-30 2 views
5

Ist es möglich, den Export einer einzelnen Datenbank mit phpMyAdmin zu automatisieren?Wie kann ich den Export einer mySQL-Datenbank mit phpMyAdmin automatisieren

Wenn ich versuche, die .SQL-Datei von einem externen Skript wie PHP zu erstellen, sieht die resultierende .SQL-Datei sauber aus, aber wenn importiert importiert verursacht Probleme in der Anwendung.

Wenn ich phpMyAdmin verwenden, um eine ähnliche .sql-Datei mithilfe von Export zu erstellen, importiert die resultierende .sql-Datei importiert, ohne Probleme zu meiner Anwendung zu verursachen.

Die Anwendung ist Moodle 2.2, die MySQL-Version ist 5.5, die phpMyAdmin-Version ist 3.4.10.

+1

Ich habe es nicht in phpMyAdmin überprüft, aber vielleicht bessere Lösung wird Cron Job machen. – Dudeist

+0

Ich benutze Cron, um mein externes Skript aufzurufen, das problematisch ist, weshalb ich das Skript direkt von phpMyAdmin erstellen möchte. – jamesTheProgrammer

+0

Sie können MySQLBackupFTP (http://mysqlbackupfp.com/) mit Ihrem phpMyAdmin verbinden und einen Zeitplan für die automatische Sicherung Ihrer Datenbanken festlegen. –

Antwort

4

Die beste Option besteht darin, ein Skript zu erstellen, das den Datenbankexport mit mysqldump und danach einen Cronjob ausführt, um das Skript auszuführen.

+0

Da ich einen Windows 2003-Server verwende, gibt es kein Cron-Skript. automatisieren.Ich fand die Windows-Version von Cron, AT, wo ich in der Lage war, mysqldump zu verwenden, wie Sie von der Kommandozeile aus angegeben haben. – jamesTheProgrammer

+3

Cronjobs in Windows heißen geplante Taks. – edelgado

+0

Das funktioniert gut, bis Sie mit einem Hosting-Unternehmen sind, wo die IP des DB-Servers localhost oder einige [RFC 1918] (http://www.faqs.org/rfcs/rfc1918.html) Adresse und Ihr einziger anderer Zugriff ist ist FTP. Dann haben Sie nur Zugriff auf unsere Datenbank phpMyAdmin oder über ein selbst erstelltes PHP-Skript, da Sie nicht über das Internet auf die Datenbank zugreifen können. –

2

Wenn Sie nicht direkt auf die Datenbank mit mysqldump eine Verbindung herstellen können, können Sie diese Shell-Skript verwenden (erfordert curl):

#!/bin/sh 
ADMIN_URL='https://phpmyadmin.example.com' 
USERNAME='my_username' 
PASSWORD='my_password' 
COOKIEJAR='/tmp/my_cookiejar' 
token=`curl -s -o - -d "pma_username=$USERNAME" -d "pma_password=$PASSWORD" -c "$COOKIEJAR" "$ADMIN_URL/" | grep -o -m 1 "token=.*'" | sed "s/'//"` 
curl -o - -b "$COOKIEJAR" -d what=sql -d export_type=server -d sql_structure_or_data=structure_and_data -d "$token" "$ADMIN_URL/export.php" 
rm "$COOKIEJAR" 

es dann in Ihre crontab setzen:

22  3 * * * someuser /path/to/script.sh > /path/to/backup/db.sql 

zu Sichern Sie sich jede Nacht um 3:22 Uhr ein Backup.

Nur mit phpMyAdmin 3.4.10.1 getestet und funktioniert möglicherweise nicht in anderen (Haupt) Versionen.

+0

Sieht so aus, als hätte V4 Token in der Form, also glaube ich nicht, dass das funktionieren wird ... Aber nicht getestet. – Nick

+0

irgendein Update auf diesem? £ –

0

Verwenden Sie dieses Skript: https://github.com/qubitstream/phpmyadmin_sql_backup

phpmyadmin_sql_backup.py

Ein Python 3 Skript das Herunterladen von SQL-Backups über ein phpMyAdmin Web-Interface zu automatisieren.

Dies ist nützlich, wenn Sie Ihre Web-Hosting-Provider Sie nicht gewähren Zugriff der die Konsole (für mysqldump), aber Sie wollen die Sicherung Ihrer Datenbank automatisieren (ohne manuell den Browser verwenden, um mit).

Es wurde mit Python 3.4+ auf Linux und Windows und phpMyAdmin 4.3.6, 4.5.4.1 und 4.7.0-dev

Hinweis getestet: Das Web-Interface von phpMyAdmin kann sich in Zukunft ändern und Brechen Sie dieses Skript. Bitte senden Sie einen Fehlerbericht (einschließlich Ihrer Version von phpMyAdmin), wenn dieses Problem auftritt.

Beispiel:

phpmyadmin_sql_backup.py "http://www.example.com/phpmyadmin/" your_user your_password 

andere Optionen zur Verfügung.