85 lines
3.3 KiB
Plaintext
85 lines
3.3 KiB
Plaintext
|
====== Sauvegarde une base de données MariaDB ======
|
||
|
{{ :dummy.png?75x75|Nom de la section}}
|
||
|
|
||
|
Il existe deux façon de faire une sauvegarde. L'une est plus sécurisée que l'autre.
|
||
|
|
||
|
Ouvrez une fenêtre de terminal ou une invite de commande sur votre système.
|
||
|
|
||
|
===== Sauvegarde sécurisée =====
|
||
|
|
||
|
Créer dans le home de l'utilisateur (''~'') le fichier ''.my.cnf''. Ce fichier contiendra le nom et le mot de passe qui seront utilisés lors de la sauvegarde.
|
||
|
|
||
|
<code>
|
||
|
[mysqldump]
|
||
|
user=cedric
|
||
|
password='&qy9zh%Mzz$mA'
|
||
|
</code>
|
||
|
|
||
|
Utiliser la commande ''mariadb-dump'' pour effectuer la sauvegarde.
|
||
|
Si la commande ''mariadb-dump'' ne fonctionne pas, essayez ''mysqldump''.
|
||
|
|
||
|
<code bash>
|
||
|
mariadb-dump -h [nom_du_serveur] [nom_de_la_base_de_données] > backup_[nom_de_la_base_de_données]_$(date "+%Y%m%d-%H%M%S").sql
|
||
|
</code>
|
||
|
|
||
|
On peut imaginer un script complet.
|
||
|
<code bash>
|
||
|
#!/bin/bash
|
||
|
|
||
|
set -e
|
||
|
|
||
|
## Backup de la base de données
|
||
|
|
||
|
dateHeure=$(date "+%Y%m%d-%H%M%S")
|
||
|
database=[nom_de_la_base_de_donnees]
|
||
|
db_host=[nom_du_serveur]
|
||
|
file_log=/var/log/save_${database}-${dateHeure}.log
|
||
|
path_tmp=/tmp
|
||
|
path_backup=/var/backup
|
||
|
file_dump=backup_${database}_${dateHeure}.sql
|
||
|
file_dump_archive=${file_dump%.*}.tar.gz
|
||
|
|
||
|
checkError() {
|
||
|
status=${1}
|
||
|
message=${2}
|
||
|
file_log=${3}
|
||
|
if [ "$status" -ne 0 ]
|
||
|
then
|
||
|
echo "Erreur : " "${message}" | tee -a "${file_log}"
|
||
|
echo "Fin du script" | tee -a "${file_log}"
|
||
|
exit "$status"
|
||
|
fi
|
||
|
|
||
|
return
|
||
|
}
|
||
|
|
||
|
echo -e "\n Création du dump de la base de données" | tee -a "${file_log}"
|
||
|
mariadb-dump -h ${db_host} ${database} | tee "${path_tmp}"/"${file_dump}" | tee -a "${file_log}"
|
||
|
checkError $? "création du dump de la base" "${file_log}"
|
||
|
|
||
|
echo -e "\n Création de l'archive du dump"| tee -a "${file_log}"
|
||
|
tar zcvf "${path_backup}/${file_dump_archive}" "${path_tmp}/${file_dump}" | tee -a "${file_log}"
|
||
|
checkError $? "création du l'archive" "${file_log}"
|
||
|
|
||
|
echo -e "\n Suppression du dump"| tee -a "${file_log}"
|
||
|
rm "${path_tmp}/${file_dump}" | tee -a "${file_log}"
|
||
|
checkError $? "suppression du dump de la base de données" "${file_log}"
|
||
|
|
||
|
</code>
|
||
|
|
||
|
===== Sauvegarde non sécurisée =====
|
||
|
|
||
|
<code>
|
||
|
mariadb-dump -u [utilisateur] -p[password] [nom_de_la_base_de_données] > [nom_du_fichier_de_sauvegarde.sql]
|
||
|
</code>
|
||
|
|
||
|
* [utilisateur] : Remplacez ceci par le nom d'utilisateur MySQL.
|
||
|
* [password] : Si l'utilisateur MySQL a un mot de passe, vous pouvez le spécifier immédiatement après -p (sans espace). Si vous ne le spécifiez pas, la commande vous demandera le mot de passe lors de l'exécution.
|
||
|
* [nom_de_la_base_de_données] : Remplacez ceci par le nom de la base de données que vous souhaitez sauvegarder.
|
||
|
* [nom_du_fichier_de_sauvegarde.sql] : Remplacez ceci par le nom que vous souhaitez donner au fichier de sauvegarde. Il aura généralement l'extension ".sql".
|
||
|
|
||
|
Exécutez la commande en appuyant sur Entrée. Si un mot de passe est nécessaire et que vous ne l'avez pas spécifié après -p, la commande vous le demandera.
|
||
|
|
||
|
La commande ''mysqldump'' créera une sauvegarde de la base de données spécifiée dans le fichier indiqué. Ce fichier contiendra toutes les instructions SQL nécessaires pour restaurer la base de données ultérieurement.
|
||
|
|
||
|
N'oubliez pas de prendre des mesures de sécurité appropriées pour protéger vos informations d'identification MySQL, car elles sont sensibles.
|