MariaDB
Installation de Base de Données et configuration
Installation
On cherche le nom du paquet pour MariaDB:
sudo apt search --names-only mariadb
Ici, on voit 2 paquets intéressants: mariadb-server(pour pouvoir gérer la BDD) et mariadb-client(pour pouvoir l'utiliser). On fait donc:
sudo apt install mariadb-server mariadb-client
Créer un utilisateur BDD
sudo mysql -u root -p MariaDB [(none)]> CREATE USER 'nom_utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe_solide'; Query OK, 0 rows affected (0.000 sec) GRANT ALL PRIVILEGES ON *.* TO 'nom_utilisateur'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.000 sec) FLUSH PRIVILEGES; Query OK, 0 rows affected (0.000 sec) QUIT; Bye
Sauvegarde et Restauration
Sauvegarde
sudo mysqldump example_database < example_database.sql
Restauration
sudo mysqldump example_database > example_database.sql
Automatisation
Je vous suggère de placer le script suivant dans le dossier /usr/sbin/local Pour rendre les choses faciles, nous avons appelé le script mysqlbackup.sh.
#!/bin/bash # Configuration de base: datestamp e.g. DDMMYYYY DATE=$(date +"%d%m%Y") # Dossier où sauvegarder les backups (créez le d'abord!) BACKUP_DIR="/backup/mysql" # Identifiants MySQL MYSQL_USER="root" MYSQL_PASSWORD="YOURSECUREPASSWORD" # Commandes MySQL (aucune raison de modifier ceci) MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump # Bases de données MySQL à ignorer SKIPDATABASES="Database|information_schema|performance_schema|mysql" # Nombre de jours à garder les dossiers (seront effacés après X jours) RETENTION=14 # ---- NE RIEN MODIFIER SOUS CETTE LIGNE ------------------------------------------ # # Create a new directory into backup directory location for this date mkdir -p $BACKUP_DIR/$DATE # Retrieve a list of all databases databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"` # Dumb the databases in seperate names and gzip the .sql file for db in $databases; do echo $db $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | gzip > "$BACKUP_DIR/$DATE/$db.sql.gz" done # Remove files older than X days find $BACKUP_DIR/* -mtime +$RETENTION -delete
Copier et collez le contenu complet du script ci-dessus, et sauvegardez-le sous le nom kinamo_mysqlbackup.sh dans le dossier /usr/local/sbin/.
N'oubliez pas de paramétrer le script avec vos propres identifiants, et de créer le dossier de sauvegarde /backup/mysql.
Changez les droits du script
Ajoutez les droits d'exécution au script avec la commande suivante:
chmod 755 mysqlbackup.sh
Créez un cronjob
Ouvrir le document contab en root
sudo nano /etc/crontab
Mettre en place le lancement automatique tous les jours a 2h30 du matin
30 2 1 * * * root /usr/local/sbin/mysqlbackup.sh
Redémarrer le service crontab pour prendre en compte les modification
sudo service cron restart