====== Backup et restauration d'une DB ====== 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** :!: #!/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 **mysql** : mysql -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