serveur-debian-mariadb:deplacer-var-lib-mysql

Ceci est une ancienne révision du document !


Déplacer le répertoire /var/lib/mysql sur MariaDB

Pour éviter la saturation de la partition système, il est souvent judicieux de déplacer le répertoire /var/lib/mysql vers le répertoire /home . Le déplacement du répertoire /var/lib/mysql n'est pas aussi évident que pour MySQL.

Il faut bien sûr un serveur MariaDB en fonctionnement. Ce tutoriel a été testé sur une distribution Debian 9 (Strech). Toutes les lignes de commande s'exécute dans un terminal en mode super-administrateur (root).

Difficulté
Moyen

Il faut arrêter le service MariaDB avec la commande suivante :

systemctl stop mariadb.service

Nous déplaçons le répertoire /var/lib/mysql vers le répertoire /home puis nous donnons les droits nécessaires.

mv /var/lib/mysql /home
chown -R mysql:mysql /home/mysql

Nous modifions le chemin de la base de données dans le fichier de configuration de MariaDB. Le fichier à modifier est /etc/mysql/mariadb.conf.d/50-server.cnf : On utilise nano :

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Recherchez la ligne suivante :

datadir         = /var/lib/mysql

et modifiez là pour indiquer le nouveau chemin

datadir         = /home/mysql

Enregistrez puis quittez.

Si nous voulons que le service MariaDB se lance correctement nous devons modifier le fichier /etc/systemd/system/multi-user.target.wants/mariadb.service : C'est pour éviter l'erreur mysql can’t creat test files .lower-test au démarrage du service.

Nous éditons le fichier /etc/systemd/system/multi-user.target.wants/mariadb.service :

nano /etc/systemd/system/multi-user.target.wants/mariadb.service

Puis il faut commenter la ligne suivante

ProtectHome=true
</bash>
avec le **#**, ce qui donne :
<code bash>
#ProtectHome=true

Ensuite, nous relançons systemd:

systemctl daemon-reload

Si le fichier /home/mysql/tc.log est existant, il est nécessaire de l'effacer. Nous eviterons l'erreur [ERROR] Can’t init tc log. Pour vérifier la liste des fichiers .log présents :

ls /home/mysql/*.log

Si le fichier /home/mysql/tc.log est présent dans la liste, un petit

rm  /home/mysql/tc.log 

Maintenant, il suffit de redémarrer le service mariaDB avec la ligne suivante :

systemctl start mariadb.service

Par précaution, il faut vérifier les tables. Nous allons exécuter l'utilitaire d'auto-réparation mysqlcheck.

mysqlcheck -u root -p --auto-repair --check -A

L'utilitaire vous demandera le mot de passe root de votre accès à mariaDB. Puis la vérification se lancera.

  • [01/07/2018] : Création de l'article
  • serveur-debian-mariadb/deplacer-var-lib-mysql.1570546952.txt.gz
  • Dernière modification : 08/10/2019 17:02
  • de 127.0.0.1