1
0
Bifurcation 0
miroir de https://github.com/PAPAMICA/Wiki-Tech.io.git synchronisé 2024-11-27 03:34:08 +01:00
Wiki-Tech.io/Conteneurisation/Docker/Backup-database.md
2022-05-10 08:13:45 +00:00

2,2 Kio

title description published date tags editor dateCreated
Sauvegarde de base de données conteneurisée Faire un dump d'un base de données fonctionnant dans un conteneur Docker true 2022-05-10T08:13:42.194Z docker, backup, sauvegarde, postgres, mysql, mariadb markdown 2022-05-10T08:07:32.137Z

![logo](https://www.benlcollins.com/wp-content/uploads/2018/11/postgresql-logo.png =400x)

PostgreSQL

Récupération des informations

Afin de pouvoir sauvegarder proprement votre base de données (avec un dump), il vous faut les informations suivantes que vous pouvez récupérer directement depuis les variables d'envirionnement du conteneur :

L'utilisateur de la base de données

docker exec <CONTAINER_NAME> bash -c 'echo "$POSTGRES_USER"'

Le mot de passe de l'utilisateur

docker exec <CONTAINER_NAME> bash -c 'echo "$POSTGRES_PASSWORD"'

Sauvegarde

docker exec -t <CONTAINER_NAME> pg_dumpall -c -U <DB_USER> > dump.sql

Restauration

cat dump.sql | docker exec -i <CONTAINER_NAME> psql -U <DB_USER>

![logo](https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Mariadb-seal-browntext.svg/2560px-Mariadb-seal-browntext.svg.png =400x)

MySQL / MariaDB

Récupération des informations

Afin de pouvoir sauvegarder proprement votre base de données (avec un dump), il vous faut les informations suivante que vous pouvez récupérer directement depuis les variables d'envirionnement du conteneur :

L'utilisateur de la base de données

docker exec <CONTAINER_NAME> bash -c 'echo "$MYSQL_USER"'

Le mot de passe de l'utilisateur

docker exec <CONTAINER_NAME> bash -c 'echo "$MYSQL_PASSWORD"'

Le nom de la base de données

docker exec <CONTAINER_NAME> bash -c 'echo "$MYSQL_DATABASE"'

Sauvegarde

Une seule table

docker exec -e MYSQL_PWD=<DB_PASSWORD> <CONTAINER_NAME> /usr/bin/mysqldump -u <DB_USER> --no-tablespaces <DATABASE_NAME> > dump.sql

Toutes les tables

docker exec <CONTAINER_NAME> sh -c 'exec mysqldump --all-databases -u <DB_USER> -p <DB_PASSWORD> <DATABASE_NAME>' > dump.sql

Restauration

docker exec -i <CONTAINER_NAME> sh -c 'exec mysql -u <DB_USER> -p <DB_PASSWORD> <DATABASE_NAME>' < dump.sql