MySQL backup automatique avec mysqldump

Mars 2013

MySQL est livré avec une série de programmes utilitaires (qui s'utilisent en ligne de commande), dont mysqldump qui sert à exporter une base de données (données et structure) dans un fichier .sql.

On va justement utiliser mysqldump dans un script batch (.bat) sur windows, pour faire des backups automatiques d'une base mysql, qu'on peut utiliser simplement en exécutant le script.

Le script va exporter les données dans un fichier contenant la date et l'heure :

:: Récupération de la date et de l'heure
echo off
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
set year=%date:~-4%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
set datetimef=%year%-%month%-%day%_%hour%h%min%m%secs%

:: Dump
mysqldump -e -c -u php -pphp pstuto > "pstuto dump %datetimef%.sql"

Et c'est tout !

Assurez-vous d'avoir ajouté le répertoire contenant mysqldump à la variable d'environnement PATH, pour pouvoir appeler mysqldump de n'importe où.

Exporter certaines tables uniquement

On peut demander à mysqldump de n'exporter que certaines tables. Cette commande n'exporte qu'une seule table (wp_posts) :

mysqldump -e -c -u php -pphp pstuto wp_posts > "pstuto wp_posts dump.sql"

La page du jour est tableur gratuit, bonne lecture.

Restaurer un dump dans une base

Pour charger un dump mysql dans une base, on peut utiliser n'importe quel client SQL (phpMyAdmin, Adminer, HeidiSQL...), mais pour les grosses bases de données, il vaut mieux utiliser le client mysql en ligne de commande, qui est beaucoup plus rapide et sûr (pas de bug) :

@echo off
set /p dump="Dump file: " %=%
mysql -h localhost -u php -pphp pstuto < "%dump%"
echo done
pause

Ce petit script demande le nom du fichier à importer, puis importe ce fichier sur le serveur MySQL, dans la base "pstuto".

Fini de lire cette page ? allez faire un tour ici : poster encre, ça peut vous intéresser.

1 commentaire :
commentaire n°3270 par karimos
karimos vendredi 18 mars 2016, 13:27
Bonjour,
SVP je dois réaliser un fichier.bat qui permet d'extraire les données de certains champs d'une BDD mysql en localhost.et mettre le résultat dans un fichier plat ou txt avec des séparateurs de type: |;
Dans le fichier extrait,je dois reserver une longueur pour chaque champ .

Merci pour votre aide
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré