{{htmlmetatags>metatag-description=(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. Tutoriel pour exporter /var/log/mysql vers /home/log ) metatag-og:image=(https://www1.zonewebmaster.eu/_media/serveur-debian-mariadb/mariadb-social-share.jpg?w=400&tok=9e0299) metatag-og:description=(Tutoriel pour exporter /var/log/mysql vers /home/log. 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. ) metatag-og:title=(Déplacer le répertoire /var/lib/mysql sur MariaDB - DEBIAN - zonewebmaster.eu) metatag-og:type=(article) metatag-og:url=(https://www1.zonewebmaster.eu/serveur-debian-mariadb/deplacer-var-lib-mysql) metatag-og:locale=(fr_FR) metatag-og:site_name(zonewebmaster.eu) metatag-article:published_time=(2018-07-01) metatag-article:modified_time=(2022-06-12) metatag-article:author=(montuy337513) metatag-article:tag=(mariadb, mysql, log, répertoire, var, home, tc.log, protecthome, configuration, activation, installation, tuto, wiki, debian) }} ====== 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 sous MariaDB n'est pas aussi évident que pour MySQL. {{ :serveur-debian-mariadb:mariadb-mysql.jpg?nolink&400 |}} ===== Pré-requis - Difficultés ===== Il faut bien sûr un serveur **MariaDB** en fonctionnement. Ce tutoriel a été testé sur une distribution Debian 9 (Strech), Debian 10 (Buster) et Debian 11 (Bullseye). Toutes les lignes de commande s'exécute dans un terminal en mode super-administrateur (root). {{howhard>3}} ===== Arrêt de MariaDB ===== Il faut arrêter le service MariaDB avec la commande suivante : systemctl stop mariadb.service ===== Déplacement du répertoire /var/lib/mysql ===== Nous copions l'ensemble du répertoire /var/lib/mysql vers le répertoire /home (attribut -R de la commande cp) et nous donnons les droits nécessaires (attribut -p de la commande cp). Puis nous archivons le répertoire d'origine cp -R -p /var/lib/mysql /home mv /var/lib/mysql /var/lib/mysql.bak ===== Modification de la configuration de MariaDB ===== 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. ===== Modification du service mariadb.service ===== **MariaDB** possède un système de protection plus avancé que MySQL. Il faut donc autoriser la modification du chemin //datadir// dans la configuration de **MariaDB** et pour éviter de devoir faire cette modification à chaque mise à jour du paquet **maridb-server**, nous devons configurer les fichiers de démarrage de **systemd**. Nous créons un répertoire //mariadb.service.d// avec la commande //mkdir// : mkdir /etc/systemd/system/mariadb.service.d Puis nous créons le fichier de configuration : nano /etc/systemd/system/mariadb.service.d/protecthome.conf Nous y ajoutons ceci : [Service] ProtectHome=false Si cette étape n'est pas réalisée, l'erreur **mysql can’t create test files .lower-test** apparaîtra au démarrage du service avec les messages d'erreurs suivants présent dans les logs : * /usr/sbin/mysqld: Can't create file '/var/log/mysql/error.log' (errno: 13 "Permission denied") * [ERROR] mysqld: File '/home/log/mysql/mysql-bin.index' not found (Errcode: 13 "Permission denied") Ensuite, nous indiquons à **systemd** que nous avons modifié ses fichiers de configuration : systemctl daemon-reload ===== Supprimer le fichier tc.log ===== Si le fichier// /home/mysql/tc.log // est existant, il est nécessaire de l'effacer. Nous éviterons 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 ===== Le cas de app.armor ===== Si **app.armor** est installé sur votre serveur, il faut autoriser les modifications des fichiers de configuration de MariaDB. Nous éditons donc le fichier /etc/apparmor.d/usr/sbin.mysqld nano /etc/apparmor.d/usr/sbin.mysqld Et il faut remplacer toutes les références de /var/lib/mysql en /home/mysql. Vous sauvegardez et fermez l'éditeur. On redemarre le service systemctl reload apparmor ===== Démarrage du service mariaDB ===== Maintenant, il suffit de redémarrer le service **mariaDB** avec la ligne suivante : systemctl start mariadb.service puis un petit : systemctl status mariadb.service pour vérifier que tout fonctionne correctement. ===== Aller plus loin ===== 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. ===== Notes de version ===== * [01/07/2018] : Création de l'article * [22/09/2020] : MAJ pour Debian Buster (Debian 10) * [02/11/2021] : MAJ Debian Bullseye (Debian 11) * [12/06/2022] : Amélioration de la gestion systemd et ajout du cas de apparmor ===== Auteurs et sources ===== * Auteur : [[:user:montuy337513]] ===== Navigation ===== {{page>:navigation#serveur-dedie-debian}}