Script de backup de base de données MySQL via phpmyadmin

But

Avoir un script exécutable en ligne de commande permettant la sauvegarde d’une base de données distante, à laquelle on n’a accès qu’indirectement par une interface PHP.

Stratégie

Utiliser wget pour reproduire le comportement qu’aurait un utilisateur utilisant un browser pour accéder à l’interface phpMyAdmin sur la machine distante :

  1. Log in sur la page d’accueil index.php et récupération du cookie d’authentification et du token
  2. Ré-utilisation de ce cookie et du token pour les accès à phpMyAdmin suivants
  3. Obtention du contenu de la page db_export.php, qui liste les tables présentes sur le serveur
  4. Appel du script export.php pour obtenir une version compressée des instructions SQL nécessaires pour restaurer la base et toutes ses tables avec leur contenu
  5. Sauvegarde du fichier avec la date du jour
Prérequis

phpMyAdmin est installé sur le serveur

Téléchargement

save_sql_phpmyadmin_v1
Testé avec phpMyAdmin 3.2.1 réglé pour une authentification par cookie où une seule base de données est accessible à l’utilisateur connecté.

Référence

FAQ de phpMyAdmin : How can I backup my database or table?

Mots-clés

sauvegarde, backup, base de données, database, remote, à distance, mysql, sql, phpmyadmin, cookie, auth type, bash, sh, linux, ligne de commande, command line, terminal, wget, http request, automatique, automated, automation, cron, php, restricted access, GET, POST, parameter, URL, hyperlien, hyperlink, token, export.php, gzip, compression