publish: Sauvegarde d'une base de données MariaDB
This commit is contained in:
@@ -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.
|
||||
@@ -1,13 +1,12 @@
|
||||
# Sauvegarde une base de données MariaDB
|
||||
# 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`.
|
||||
|
||||
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.
|
||||
@@ -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
|
||||
|
||||

|
||||
|
||||
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.
|
||||
Reference in New Issue
Block a user