5

MariaDB: déplacer le répertoire /var/lib/mysql

Un mémo sur comment déplacer le répertoire /var/lib/mysql vers la partition /home afin d’éviter la saturation de la partition système du serveur.

Dans le cas présent, le déplacement du répertoire hébergeant les bases de données, a été déplacé après saturation de la partition système. Ce qui a eu pour conséquence d’arrêter le serveur MariaDB de façon brutal.

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

  • Stopper le serveur MariaDB, si ce n’est pas déjà fait :
  • systemctl stop mariadb.service
  • Déplacer le répertoire /var/lib/mysql vers /home/{user}/ (remplacer la variable {user} pour votre login)
  • mv /var/lib/mysql /home/{user}/
  • Donner les droits mysql au répertoire :
  • chown -R mysql:mysql /home/{user}/mysql

Modifier le chemin de la base de données dans le fichier de configuration de MariaDB

  • Éditer le fichier /etc/mysql/mariadb.conf.d/50-servers.cnf :
  • nano /etc/mysql/mariadb.conf.d/50-servers.cnf
  • Changer le chemin de la base de données :
  • datadir         = /var/lib/mysql

    par

    datadir         = /home/{user}/mysql

Modifier le service mariadb.service

Pour éviter l’erreur : mysql can’t creat test files .lower-test

  • Éditer le fichier /etc/systemd/system/multi-user.target.wants/mariadb.service :
  • nano /etc/systemd/system/multi-user.target.wants/mariadb.service
  • Commenter la ligne ProtectHome=true :
  • #ProtectHome=true
  • Recharger systemd :
  • systemctl daemon-reload

Supprimer le fichier tc.log

Supprimer le fichier tc.log afin d’éviter l’erreur : [ERROR] Can’t init tc log

rm /home/{user}/mysql/tc.log

Démarer le serveur MariaDB

A ce stade, il est possible de redémarrer le serveur de base de données MariaDB :

systemctl start mariadb.service

Réparer les tables de la base de données

Par précaution, une tache d’auto-réparation de table va être exécutées afin d’éviter l’erreur : is marked as crashed and should be repaired

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

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

5 Comments

  1. mariadb trouve automatiquement le chemin vers les nouveaux fichiers ou je n’ai pas compris ou le renseigner ?

  2. systemctl edit mariadb.service
    puis ajouter
    [Service]
    ProtectHome=true

    sinon mariadb ne redémarre pas au prochain upgrade

  3. Salut jsm,
    justement, je comment le ligne ProtecHome car sinon je me retrouve avec l’erreur : mysql can’t creat test files .lower-test et impossible de démarrer mariadb…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *