MariaDB : Backup et Restauration

Source: https://www.linode.com/docs/databases/mysql/use-mysqldump-to-back-up-mysql-or-mariadb/

Backup d'une DB vers un fichier

Syntaxe : 

mysqldump -u [user_name] -p [database_name] > [file_name].sql

Exemple : 

mysqldump -u marc -p monsiteweb > "dbdump-$(date +%Y%m%d-%H%M).sql"

⇒ génère un fichier nommé (par exemple) dbdump-20200424-0904.sql

Exemple de script de backup

⇒ Le mot de passe n'est pas fourni par le script  

~/backup_db.sh 
#!/bin/bash
 
destpath="$HOME/nextcloud-db-dump-$(date +%Y%m%d-%H%M).sql"
 
mysqldump -u admin -p nextcloud > $destpath
 
echo "Finished."
echo "DB Dump saved in [$destpath]"

Restauration de la DB

Syntaxe : 

mysql -u [user_name] -p [database_name] < [file_name].sql

La base de données doit exister. 

Si elle n'est pas vide, les tables seront droppées avant d'être recréées. 

Exemple de restauration

Lancer le client mariadb :

mariadb -u root -p
Enter password: ********

Voir les DB existantes : 

SHOW DATABASES;

Créer une DB vide : 

CREATE DATABASE monsiteweb2 CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

Accorder les privilèges sur la nouvelle DB à un utilisateur : 

GRANT ALL PRIVILEGES ON `monsiteweb2`.* TO 'symfony'@'localhost'; 

Quitter le client mysql : 

exit;

Importer le contenu de la DB depuis le backup :

mysql -u marc -p monsiteweb2 < dbdump-20200424-0904.sql