> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://wiki.leviia.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# S3cmd : sauvegarder une base de données Mysql/MariaDB

# Installation et configuration de S3cmd

Pour sauvegarder une base de données Mysql ou MariaDB sur "Leviia stockage objet", commencez par installer et configurer `S3cmd` tel que décrit ici :

https://wiki.leviia.com/fr/article/configuration-et-utilisation-de-s3cmd-1xd0jna/

# Installation de Mysqldump

Une fois la configuration effectuée, assurez vous d'avoir installé "mysqldump" sur votre serveur. 

Vous pouvez le faire un installant `mysql-client` sur debian/ubuntu :

`apt install mysql-client `

# Création d'une sauvegarde

Ensuite vous n'avez plus qu'à lancer cette commande pour effectuer la sauvegarde :

`mysqldump -h [db_hostname] -u [db_user] -p[db_passwd] --all-databases | s3cmd put - s3://[s3_bucketname]/[mysqldump_filename]`

Si vous êtes root, les variables `[db_hostname]`, `[db_user]` et `[db_passwd]` ne sont pas nécessaires. 

Par exemple, pour nous avec un bucket **testmariadb** : 

`mysqldump --all-databases | s3cmd put - s3://testmariadb/db_$(date +"%m-%d-%Y_%H-%M-%S")`

Vous pouvez vous assurer que tout est opérationnel avec un `ls`:

```bash
# s3cmd ls s3://testmariadb
2023-05-14 13:49      2525083  s3://testmariadb/05-14-2023_15-49-13
```

Vous devriez voir vos sauvegardes.

### Automatisation des sauvegardes avec Cronjob

Il est possible d'automatiser cette tâche en utilisant un "cronjob". 
Voici un exemple de "cronjob" pour sauvegarder vos bases de données à 1 heure du matin tous les jours :

`0 1 * * * mysqldump --all-databases | s3cmd put - s3://testmariadb/db_$(date +"%m-%d-%Y_%H-%M-%S")`

# Restauration d'une sauvegarde

Pour restaurer votre base de données, il vous suffit de faire l'opération inverse.

Commencez par récupérer votre sauvegarde :

`s3cmd get s3://testmariadb/db_05-14-2023_15-58-10`

Ensuite utilisez la commande "mysql" avec votre sauvegarde pour effectuer la restauration. 

`mysql < db_05-14-2023_15-58-10`

Vous devriez retrouver votre base de données telle qu'elle était au moment de la sauvegarde. 