diff --git a/Conteneurisation/Docker/Backup-database.md b/Conteneurisation/Docker/Backup-database.md new file mode 100644 index 0000000..3fb6e06 --- /dev/null +++ b/Conteneurisation/Docker/Backup-database.md @@ -0,0 +1,68 @@ +--- +title: Sauvegarde de base de données conteuneurisée +description: Faire un dump d'un base de données fonctionnant dans un conteuneur Docker +published: true +date: 2022-05-10T08:07:32.137Z +tags: docker, backup, sauvegarde, postgres, mysql, mariadb +editor: markdown +dateCreated: 2022-05-10T08:07:32.137Z +--- + +![logo](https://www.benlcollins.com/wp-content/uploads/2018/11/postgresql-logo.png) +# Postgres +## 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 +```bash +docker exec bash -c 'echo "$POSTGRES_USER"' +``` + +### Le mot de passe de l'utilisateur +```bash +docker exec bash -c 'echo "$POSTGRES_PASSWORD"' +``` + +## Sauvegarde +```bash +docker exec -t pg_dumpall -c -U > dump.sql +``` + +## Restauration +```bash +cat dump.sql | docker exec -i psql -U +``` + +![logo](https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Mariadb-seal-browntext.svg/2560px-Mariadb-seal-browntext.svg.png) +# 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 +```bash +docker exec bash -c 'echo "$MYSQL_USER"' +``` + +### Le mot de passe de l'utilisateur +```bash +docker exec bash -c 'echo "$MYSQL_PASSWORD"' +``` + +### Le nom de la base de données +```bash +docker exec bash -c 'echo "$MYSQL_DATABASE"' +``` +## Sauvegarder +### Une seule table +```bash +docker exec -e MYSQL_PWD= /usr/bin/mysqldump -u --no-tablespaces > dump.sql +``` +### Toutes les tables +```bash +docker exec sh -c 'exec mysqldump --all-databases -u -p ' > dump.sql +``` +## Restauration +```bash +docker exec -i sh -c 'exec mysql -u -p ' < dump.sql +``` \ No newline at end of file