Comment sauvegarder automatiquement une base de données MySQL à distance

Administration système | Maîtrise d'œuvre

Lorsque son site est hébergé sur un serveur auquel on n'a pas d'accès SSH (Free par exemple), il est quand même possible de sauvegarder sa base de données MySQL automatiquement et à distance.

Pour cela il faut disposer :

  • de phpMyAdmin installé sur le serveur (c'est le cas chez Free),
  • de Wget installé sur le poste à partir duquel doit se faire la sauvegarde.

Il suffit alors d'exécuter la commande :

wget --http-user=USER --http-passwd=PASSWORD --post-file=export.txt -O FICHIER http://phpmyadmin.free.fr/phpMyAdmin/export.php

En remplaçant USER par votre login, PASSWORD par votre mot de passe et FICHIER par le nom du fichier dans lequel vous souhaiter sauvegarder votre base. export.txt est un fichier contenant les paramètres de la requête envoyée au serveur :

what=sql&asfile=sendit&export_type=server&sql_structure=structure&sql_type=insert&sql_data=data&auto_increment=1&use_backquotes=1

Selon le type d'export voulu, il faudra fournir les bons paramètres. Afin de les déterminer précisément, l'extension Live HTTP Headers pour Firefox est d'un grand secours. Pour automatiser la procédure, il suffit d'ajouter la commande à la liste des tâche à lancer par cron (ou son équivalent sur un autre OS).

Édition 02/08/2007 : Lionel, un lecteur me signal la possibilité de passer par le service de backup de Free :

wget http://sql.free.fr/backup.php --post-data="login=USER&password=PASSWORD&check=1&all=1" -O backup.sql.gz

Merci Lionel.