Formation PUB200 : MySQL, 2018 Copie de sécurité d'une base de données MySQL

Fichier batch pour exporter l'ensemble des bases de données MySQL


La commande mysqldump permet de générer un script SQL qui pourra recréer l'ensemble des bases de données présentes sur le serveur MySQL.

Il suffit pour cela d'utiliser l'option --all-databases.

Le script suivant créera un script de l'ensemble des bases de données et lui donnera un nom qui se termine par la date du jour.

▼Publicité Le texte se poursuit plus bas

Version Windows

Si vous travaillez sous Windows, utilisez cette version. Une version pour Mac est présentée plus bas.

Note : pour que les accents présents dans les echo soient correctement affichés sous Windows, le fichier doit être encodé au format IBM850 (dans Geany : Fichier / Recharger en tant que / Européen de l'ouest / Occidental (IBM850)).

Certains éditeurs offrent plutôt le format OEM 720 (dans Notepad++ : Encodage / Codage de caractères / Arabe / OEM 720).

Fichier batch

@ECHO OFF

REM Génère un script SQL qui permet de recréer l'ensemble des bases de données, en ajoutant la date du jour au nom du script.

REM Note : Pour que les accents présents dans les echo s'affichent correctement, utiliser l'encodage OEM 720.

REM Note : Si des noms de dossiers contiennent des caractères accentués, utilisez l'encodage ANSI et ajoutez l'instruction CHCP 1252.

REM Programmé par Christiane Lagacé : https://christianelagace.com

REM Le 29 mars 2015

 

REM ***** Création des variables pour la date *****

REM La commande "WMIC OS GET localdatetime" retrouve la date au format ISO. 

REM Le caractère ^ (caret) est un caractère d'échappement. Le caractère | (pipe) permet de rediriger la sortie de WMIC vers la commande find. 

REM Puisqu'on veut conserver toute la chaîne, on recherche n'importe quel caractère : find "."

REM Autrement dit, cette ligne place toute la date dans la variable dateISO.

 

for /f %%a in ('WMIC OS Get localdatetime  ^| find "."') do set "dateISO=%%a"

set "annee=%dateISO:~0,4%"

set "mois=%dateISO:~4,2%"

set "jour=%dateISO:~6,2%"

 

echo ***************************************************************

echo ***** Création du script pour recréer toutes les BD MySQL *****

echo ***************************************************************

 

@echo on

CD \"Program Files (x86)\EasyPHP-Devserver-17\eds-binaries\dbserver\mysql5717x86x170818121537\bin"

mysqldump -u usagermysql -p --routines --comments --triggers --all-databases > chemin\ToutesBDMySQL-%annee%-%mois%-%jour%.sql

@echo off

 

echo *******************

echo ***** Terminé *****

echo *******************

PAUSE

Version Mac

Voici le même script mais au format bash pour Mac.

Notez que si le fichier porte l'extension .bash ou .sh, il sera possible de l'exécuter seulement à partir d'une fenêtre Terminal (ne pas oublier de mettre « ./ » avant d'écrire son nom lors de l'appel). S'il porte l'extension .command, il sera possible de l'exécuter également en double-cliquant sur son nom dans le Finder.

Vous devez ajouter les droits d'exécution sur ce fichier (voir Exécuter un fichier bash).

Fichier bash

#!/bin/bash

# Génère un script SQL qui permet de recréer l'ensemble des bases de données, en ajoutant la date du jour au nom du script.
# Programmé par Christiane Lagacé : https://christianelagace.com
# Le 29 mars 2015

# *************************
# ***** Configuration *****
# *************************

# ***** VOUS DEVEZ REMPLIR CETTE SECTION *****

# Chemin du dossier qui contient le fichier mysqldump.exe
# (ex : "/Applications/AMPPS/mysql/bin" ou /Applications/XAMPP/xamppfiles/bin)
cheminMySQLDump="/Applications/XAMPP/xamppfiles/bin"

# Nom de l'usager MySQL qui détient les droit requis pour sauvegarder la base de données
usagerMySQL=root

# Chemin du dossier dans lequel le script sera sauvegardé
# (ex : ~ ou /Users/monnom/Downloads)
cheminCible=~

# *****************************
# ***** Fin configuration *****
# *****************************

# ***** Date du jour *****
aujourdhui=$(date +%Y-%m-%d)

echo "***************************************************************"
echo "***** Création du script pour recréer toutes les BD MySQL *****"
echo "***************************************************************"

nomFichier=$cheminCible/ToutesBDMySQL-$aujourdhui.sql

if $cheminMySQLDump/mysqldump -u $usagerMySQL -p --routines --comments --triggers --all-databases > $nomFichier
then
    echo "***********************************"
    echo "Le script $nomFichier a été généré."
    echo "***********************************"
else
    echo "**********************************"
    echo "OUPS! Un problème a été rencontré."
    echo "**********************************"
fi

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Dernière révision le 31 mars 2021
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre