<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Technique%2FMySQL%2FDump_automatique</id>
	<title>Technique/MySQL/Dump automatique - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Technique%2FMySQL%2FDump_automatique"/>
	<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Technique/MySQL/Dump_automatique&amp;action=history"/>
	<updated>2026-05-15T23:58:35Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki.jordan-lenuff.com/index.php?title=Technique/MySQL/Dump_automatique&amp;diff=132&amp;oldid=prev</id>
		<title>Jordan : Page créée avec « == Présentation == Cette page a pour objet de décrire comment mettre en place un dump automatique d'une base de données MySQL.  == Script == Définir un dossier dans le... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Technique/MySQL/Dump_automatique&amp;diff=132&amp;oldid=prev"/>
		<updated>2019-08-13T12:38:30Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « == Présentation == Cette page a pour objet de décrire comment mettre en place un dump automatique d&amp;#039;une base de données MySQL.  == Script == Définir un dossier dans le... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Présentation ==&lt;br /&gt;
Cette page a pour objet de décrire comment mettre en place un dump automatique d'une base de données MySQL.&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
Définir un dossier dans lequel sera stocké le script de dump (exemple : &amp;lt;code&amp;gt;/data/scripts&amp;lt;/code&amp;gt;) et le sécuriser :&lt;br /&gt;
 mkdir -p /data/scripts&lt;br /&gt;
 chmod 700 /data/scripts&lt;br /&gt;
&lt;br /&gt;
Y créer un fichier (exemple : '''dump_bdd.sh''') et le sécuriser :&lt;br /&gt;
 touch /data/scripts/dump_bdd.sh&lt;br /&gt;
 chmod 700 /data/scripts/dump_bdd.sh&lt;br /&gt;
&lt;br /&gt;
Y renseigner le contenu suivant :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
#set -x&lt;br /&gt;
&lt;br /&gt;
# Initialisation variables&lt;br /&gt;
HOST=`echo $HOSTNAME|awk -F\. '{print $1}'`&lt;br /&gt;
BCK_DIR=&amp;quot;/data/save/$HOST_BDD&amp;quot;   #Dossier de sauvegarde&lt;br /&gt;
LOG_DIR=&amp;quot;/data/logs/$HOST_BDD&amp;quot;   #Dossier des logs&lt;br /&gt;
DDATE=`date +'%Y%m%d'`  #Date du jour&lt;br /&gt;
DCDATE=`date +'%Y%m%d %T'`  #Date complete du jour&lt;br /&gt;
BCK_RETENTION=10  #Durée de rétention des sauvegardes&lt;br /&gt;
LOG_RETENTION=10  #Durée de rétention des logs&lt;br /&gt;
MAIL_DESTINATION=&amp;quot;mymail@mydomain.com&amp;quot;  #Adresse(s) mail destinatrice(s) du fichier dump&lt;br /&gt;
&lt;br /&gt;
# Création des dossiers&lt;br /&gt;
mkdir -p $BCK_DIR&lt;br /&gt;
mkdir -p $LOG_DIR&lt;br /&gt;
&lt;br /&gt;
# Lancement du traitement&lt;br /&gt;
echo $(date &amp;quot;+%F %T&amp;quot;)&amp;quot; : Début Batch Sauvegarde des BDD MySQL du ${DCDATE} du serveur ${HOST}&amp;quot; &amp;gt; ${LOG_DIR}/BCK_MYSQL_${DDATE}.log | tee&lt;br /&gt;
&lt;br /&gt;
echo $(date &amp;quot;+%F %T&amp;quot;)&amp;quot; : Sauvegarde des BDD MySQL&amp;quot; &amp;gt;&amp;gt; ${LOG_DIR}/BCK_MYSQL_${DDATE}.log | tee&lt;br /&gt;
mysqldump --defaults-extra-file=/root/.credentials/.mysqldump.cred --login-path=local --opt -A &amp;gt; ${BCK_DIR}/BCK_MYSQL_${DDATE}.dmp&lt;br /&gt;
echo $(date &amp;quot;+%F %T&amp;quot;)&amp;quot; : Fin de la sauvegarde&amp;quot; &amp;gt;&amp;gt; ${LOG_DIR}/BCK_MYSQL_${DDATE}.log&lt;br /&gt;
&lt;br /&gt;
echo $(date &amp;quot;+%F %T&amp;quot;)&amp;quot; : Compression de la sauvegarde&amp;quot; &amp;gt;&amp;gt; ${LOG_DIR}/BCK_MYSQL_${DDATE}.log| tee&lt;br /&gt;
gzip -f ${BCK_DIR}/BCK_MYSQL_${DDATE}.dmp&lt;br /&gt;
&lt;br /&gt;
echo $(date &amp;quot;+%F %T&amp;quot;)&amp;quot; : Envoi de la sauvegarde sur la boite mail&amp;quot; &amp;gt;&amp;gt; ${LOG_DIR}/BCK_MYSQL_${DDATE}.log| tee&lt;br /&gt;
echo &amp;quot;La sauvegarde MySQL du serveur ${HOST} se trouve en attachment de ce mail&amp;quot;|mail -a ${BCK_DIR}/BCK_MYSQL_${DDATE}.dmp.gz -s &amp;quot;Sauvegarde BDD ${HOST} du `date +'%d-%m-%Y'`&amp;quot; ${MAIL_DESTINATION}&lt;br /&gt;
&lt;br /&gt;
echo $(date &amp;quot;+%F %T&amp;quot;)&amp;quot; : Purge des anciennes sauvegardes et logs&amp;quot; &amp;gt;&amp;gt; ${LOG_DIR}/BCK_MYSQL_${DDATE}.log| tee&lt;br /&gt;
find ${BCK_DIR} -name &amp;quot;BCK_MYSQL*.dmp.gz&amp;quot; -mtime +${BCK_RETENTION} -exec rm -rf {} \;&lt;br /&gt;
find ${LOG_DIR} -name &amp;quot;BCK_MYSQL*.log&amp;quot; -mtime +${LOG_RETENTION} -exec rm -rf {} \;&lt;br /&gt;
&lt;br /&gt;
echo $(date &amp;quot;+%F %T&amp;quot;)&amp;quot; : Fin Batch Sauvegarde des BDD MySQL du ${DCDATE}&amp;quot; &amp;gt;&amp;gt; ${LOG_DIR}/BCK_MYSQL_${DDATE}.log| tee&lt;br /&gt;
# Fin du traitement&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MySQL ==&lt;br /&gt;
=== Utilisateur ===&lt;br /&gt;
Créer utilisateur MySQL dont le rôle sera uniquement de réaliser des dumps (par exemple : ''mysqldump_user'') et lui attribuer les droits correspondants :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;SQL&amp;quot;&amp;gt;&lt;br /&gt;
CREATE USER 'mysqldump_user'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxxxxx';&lt;br /&gt;
GRANT USAGE, SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON *.* TO 'mysqldump_user'@'localhost';&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Identifiants ===&lt;br /&gt;
Créer un dossier caché (par exemple &amp;lt;code&amp;gt;/root/.credentials&amp;lt;/code&amp;gt;) et le sécuriser :&lt;br /&gt;
 mkdir /root/.credentials&lt;br /&gt;
 chmod 700 /root/.credentials&lt;br /&gt;
Créer un fichier caché (par exemple &amp;lt;code&amp;gt;.mysqldump.cred&amp;lt;/code&amp;gt;) et le sécuriser :&lt;br /&gt;
 touch /root/.credentials/.mysqldump.cred&lt;br /&gt;
Y ajouter le contenu suivant :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[mysqldump]&lt;br /&gt;
user=mysqldump_user&lt;br /&gt;
password=xxxxxxxxxxxxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Et le sécuriser en le mettant en lecture seule :&lt;br /&gt;
 chmod 400 /root/.credentials/.mysqldump.cred&lt;br /&gt;
&lt;br /&gt;
== crontab ==&lt;br /&gt;
Editer la crontab et y ajouter les lignes suivantes :&lt;br /&gt;
 ## Sauvegarde intégrale de la base données tous les jours à 02h00 du matin&lt;br /&gt;
 0 2 * * * /data/scripts/dump_bdd.sh&lt;/div&gt;</summary>
		<author><name>Jordan</name></author>
		
	</entry>
</feed>