publish: Sauvegarde d'une base de données MariaDB

This commit is contained in:
Cédrix
2026-05-17 21:14:23 +02:00
parent 38c7d59305
commit c0a6301012
5 changed files with 143 additions and 145 deletions
@@ -1,15 +0,0 @@
{
"title": "Sauvegarde d'une base de données MariaDB",
"_updated_at": "2026-05-17 19:14:21",
"slug": "effectuer-une-sauvegarde-de-base-de-donnees",
"published": true,
"published_at": "2023-10-26 11:42",
"category": "Informatique",
"tags": {
"tags": [
"MariaDB"
]
},
"seo_title": "",
"seo_description": ""
}
@@ -1,92 +0,0 @@
# Sauvegarde d'une base de données MariaDB
Il existe deux façons de sauvegarder une base MariaDB en ligne de commande. La première est recommandée car elle évite d'exposer le mot de passe ; la seconde, plus rapide à taper, le laisse apparaître dans l'historique du shell et dans la sortie de `ps`.
Ouvrez un terminal sur votre système avant de commencer.
## Méthode recommandée : identifiants dans `.my.cnf`
Créez dans le répertoire personnel de l'utilisateur (`~`) un fichier `.my.cnf` contenant les identifiants utilisés pour la sauvegarde.
```
[mysqldump]
user=cedric
password='&qy9zh%Mzz$mA'
```
Restreignez immédiatement ses permissions pour que lui seul puisse le lire :
```bash
chmod 600 ~/.my.cnf
```
Lancez ensuite la sauvegarde avec `mariadb-dump` (ou `mysqldump` si la première commande n'est pas disponible) :
```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
```
### Script complet
Le script ci-dessous crée le dump, l'archive au format `tar.gz`, puis supprime le fichier temporaire. Chaque étape est journalisée et toute erreur interrompt l'exécution.
```bash
#!/bin/bash
set -e
set -o pipefail
## 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}" > "${path_tmp}/${file_dump}"
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 de 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}"
```
> `set -o pipefail` garantit qu'une erreur dans `mariadb-dump` sera bien remontée même lorsqu'elle est suivie d'un `tee`. Le dump n'est volontairement pas redirigé vers le log : seuls les messages d'étape y figurent.
## Méthode non sécurisée : identifiants en ligne de commande
À éviter en production : le mot de passe apparaît dans l'historique du shell et peut être visible via `ps`.
```
mariadb-dump -u [utilisateur] -p[password] [nom_de_la_base_de_données] > [nom_du_fichier_de_sauvegarde.sql]
```
- `[utilisateur]` : nom d'utilisateur MariaDB.
- `[password]` : mot de passe, collé immédiatement après `-p` (sans espace). Omettez-le pour que la commande le demande de manière interactive — c'est déjà plus sûr.
- `[nom_de_la_base_de_données]` : base à sauvegarder.
- `[nom_du_fichier_de_sauvegarde.sql]` : fichier de destination, généralement avec l'extension `.sql`.
Le fichier produit contient toutes les instructions SQL nécessaires à la restauration ultérieure de la base.
+42 -33
View File
@@ -1,13 +1,12 @@
# Sauvegarde une base de données MariaDB
# Sauvegarde d'une base de données MariaDB
![Nom de la section](dummy.png)
Il existe deux façons de sauvegarder une base MariaDB en ligne de commande. La première est recommandée car elle évite d'exposer le mot de passe ; la seconde, plus rapide à taper, le laisse apparaître dans l'historique du shell et dans la sortie de `ps`.
Il existe deux façon de faire une sauvegarde. L'une est plus sécurisée que l'autre.
Ouvrez un terminal sur votre système avant de commencer.
Ouvrez une fenêtre de terminal ou une invite de commande sur votre système.
## Méthode recommandée : identifiants dans `.my.cnf`
## 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.
Créez dans le répertoire personnel de l'utilisateur (`~`) un fichier `.my.cnf` contenant les identifiants utilisés pour la sauvegarde.
```
[mysqldump]
@@ -15,21 +14,30 @@ user=cedric
password='&qy9zh%Mzz$mA'
```
Utiliser la commande `mariadb-dump` pour effectuer la sauvegarde.
Si la commande `mariadb-dump` ne fonctionne pas, essayez `mysqldump`.
Restreignez immédiatement ses permissions pour que lui seul puisse le lire :
```bash
chmod 600 ~/.my.cnf
```
Lancez ensuite la sauvegarde avec `mariadb-dump` (ou `mysqldump` si la première commande n'est pas disponible) :
```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
```
On peut imaginer un script complet.
### Script complet
Le script ci-dessous crée le dump, l'archive au format `tar.gz`, puis supprime le fichier temporaire. Chaque étape est journalisée et toute erreur interrompt l'exécution.
```bash
#!/bin/bash
set -e
set -o pipefail
## 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]
@@ -38,46 +46,47 @@ 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 "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}"
mariadb-dump -h "${db_host}" "${database}" > "${path_tmp}/${file_dump}"
checkError $? "création du dump de la base" "${file_log}"
echo -e "\n Création de l'archive du dump"| tee -a "${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 $? "création de 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}"
```
## Sauvegarde non sécurisée
> `set -o pipefail` garantit qu'une erreur dans `mariadb-dump` sera bien remontée même lorsqu'elle est suivie d'un `tee`. Le dump n'est volontairement pas redirigé vers le log : seuls les messages d'étape y figurent.
## Méthode non sécurisée : identifiants en ligne de commande
À éviter en production : le mot de passe apparaît dans l'historique du shell et peut être visible via `ps`.
```
mariadb-dump -u [utilisateur] -p[password] [nom_de_la_base_de_données] > [nom_du_fichier_de_sauvegarde.sql]
```
- [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".
- `[utilisateur]` : nom d'utilisateur MariaDB.
- `[password]` : mot de passe, collé immédiatement après `-p` (sans espace). Omettez-le pour que la commande le demande de manière interactive — c'est déjà plus sûr.
- `[nom_de_la_base_de_données]` : base à sauvegarder.
- `[nom_du_fichier_de_sauvegarde.sql]` : fichier de destination, généralement avec 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.
Le fichier produit contient toutes les instructions SQL nécessaires à la restauration ultérieure de la base.
+18 -5
View File
@@ -1,18 +1,31 @@
{
"uuid": "7752fdd9-61b3-4c45-8b81-8538e7b5d691",
"slug": "effectuer-une-sauvegarde-de-base-de-donnees",
"title": "Sauvegarde une base de données MariaDB",
"title": "Sauvegarde d'une base de données MariaDB",
"author": "cedric@abonnel.fr",
"published": true,
"published_at": "2023-10-26 11:42:39",
"featured": false,
"published_at": "2023-10-26 11:42",
"created_at": "2023-10-26 11:42:39",
"updated_at": "2023-10-26 11:42:39",
"revisions": [],
"updated_at": "2026-05-17 19:14:23",
"revisions": [
{
"n": 1,
"date": "2026-05-17 19:14:23",
"comment": "Titre modifié, tags modifiés, contenu modifié",
"title": "Sauvegarde une base de données MariaDB"
}
],
"cover": "",
"files_meta": [],
"external_links": [],
"seo_title": "",
"seo_description": "",
"og_image": "",
"category": "Informatique"
"category": "Informatique",
"tags": {
"tags": [
"MariaDB"
]
}
}
@@ -0,0 +1,83 @@
# Sauvegarde une base de données MariaDB
![Nom de la section](dummy.png)
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.
```
[mysqldump]
user=cedric
password='&qy9zh%Mzz$mA'
```
Utiliser la commande `mariadb-dump` pour effectuer la sauvegarde.
Si la commande `mariadb-dump` ne fonctionne pas, essayez `mysqldump`.
```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
```
On peut imaginer un script complet.
```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}"
```
## Sauvegarde non sécurisée
```
mariadb-dump -u [utilisateur] -p[password] [nom_de_la_base_de_données] > [nom_du_fichier_de_sauvegarde.sql]
```
- [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.