J’ai récemment installé un plugin qui met en cache les requêtes API Amazon mais dont la table SQL gonfle énormément – plus de 5 Go à l’heure où j’écris ces lignes.
Le problème, c’est que cela remplit la partition racine du serveur, qui est utilisée par défaut par MariaDB pour stocker les fichiers des bases de données.
Lorsque j’ai créé ce serveur, j’ai utilisé la configuration par défault d’OVH, ce qui est une erreur grossière : la partition racine (/) fait 10 Go alors que la partition /home fait 740 Go… même pour un desktop, on ne fait plus cela parce que cela laisse trop peu pour le système alors imaginez un peu pour un serveur !
Nous avons donc le choix entre re-partitionner le disque (autant vous dire que cela ne me tente que très moyennement) ou alors changer le dossier des bases SQL pour les mettre sous /home.
Ce tutoriel vous permet donc de délocaliser les bases de données MySQL/MariaDB sur une autre partition. Le serveur tourne sur la dernière version de Debian.
Vérification du chemin des bases MariaDB
Tout se passe via le terminal. Je vous conseille de faire une sauvegarde de vos bases avant de commencer.
Commençons par vérifier le dossier dans lequel se trouve nos bases de données:
mysql -u root -p
Entrez votre mot de passe root puis entrez la commande suivante:
select @@datadir;
Code language: CSS (css)
Résultat:
+-----------------+
| @@datadir |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)
Code language: JavaScript (javascript)
Ajustement de systemd pour MariaDB
Ceci est une étape fondamentale du tutoriel. Si vous ne faites pas cela, MariaDB ne démarrera pas avec votre nouveau dossier car, par défaut, il n’a pas accès à /home
.
Il faut donc que nous lui donnions explicitement l’accès :
systemctl edit mariadb
Dans le fichier qui s’ouvre, entrez le code suivant:
[Service]
ProtectHome = false
Code language: JavaScript (javascript)
Enregistrez le fichier tel quel, sans changer le nom. Le fichier que vous venez de créer est /etc/systemd/system/mariadb.service.d/override.conf
Appliquez maintenant les changements :
systemctl daemon-reload
Un nouveau répertoire pour nos bases de données
Nous pouvons maintenant créer le nouveau répertoire qui accueillera les fichiers de nos bases de données. Par simplicité, je choisis de tout mettre sous /home/mysql :