| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| serveur-debian-mariadb:deplacer-var-lib-mysql [02/11/2021 10:19] – zonewebmaster | serveur-debian-mariadb:deplacer-var-lib-mysql [12/06/2022 15:54] (Version actuelle) – [Le cas de app.armor] zonewebmaster |
|---|
| {{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 ) | {{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-apache2-debian:1920px-apache_http_server_logo__2016_.svg.png) | 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/logPour é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: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:title=(Déplacer le répertoire /var/lib/mysql sur MariaDB - DEBIAN - zonewebmaster.eu) |
| metatag-og:type=(article) | metatag-og:type=(article) |
| metatag-og:site_name(zonewebmaster.eu) | metatag-og:site_name(zonewebmaster.eu) |
| metatag-article:published_time=(2018-07-01) | metatag-article:published_time=(2018-07-01) |
| metatag-article:modified_time=(2021-11-02) | metatag-article:modified_time=(2022-06-12) |
| metatag-article:author=(montuy337513) | metatag-article:author=(montuy337513) |
| metatag-article:tag=(mariadb, mysql, log, répertoire, var, home, tc.log, protecthome, configuration, activation, installation, tuto, wiki, debian) | metatag-article:tag=(mariadb, mysql, log, répertoire, var, home, tc.log, protecthome, configuration, activation, installation, tuto, wiki, debian) |
| Le déplacement du répertoire /var/lib/mysql sous MariaDB n'est pas aussi évident que pour MySQL. | 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 ===== | ===== Pré-requis - Difficultés ===== |
| |
| ===== Déplacement du répertoire /var/lib/mysql ===== | ===== Déplacement du répertoire /var/lib/mysql ===== |
| |
| Nous déplaçons le répertoire /var/lib/mysql vers le répertoire /home puis nous donnons les droits nécessaires. | 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 |
| <code bash> | <code bash> |
| mv /var/lib/mysql /home | cp -R -p /var/lib/mysql /home |
| chown -R mysql:ad /home/mysql | mv /var/lib/mysql /var/lib/mysql.bak |
| </code> | </code> |
| |
| ===== Modification du service mariadb.service ===== | ===== Modification du service mariadb.service ===== |
| |
| Si nous voulons que le service **MariaDB** se lance correctement nous devons modifier le fichier// /etc/systemd/system/multi-user.target.wants/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**. |
| C'est pour éviter l'erreur **mysql can’t creat test files .lower-test** au démarrage du service ou les messages d'erreurs suivants : | |
| * /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") | |
| |
| Nous éditons le fichier// /etc/systemd/system/multi-user.target.wants/mariadb.service //: | Nous créons un répertoire //mariadb.service.d// avec la commande //mkdir// : |
| <code bash> | <code bash> |
| nano /etc/systemd/system/multi-user.target.wants/mariadb.service | mkdir /etc/systemd/system/mariadb.service.d |
| </code> | </code> |
| | Puis nous créons le fichier de configuration : |
| Puis il faut commenter la ligne suivante | |
| <code bash> | <code bash> |
| ProtectHome=true | nano /etc/systemd/system/mariadb.service.d/protecthome.conf |
| </code> | </code> |
| avec le **#**, ce qui donne : | Nous y ajoutons ceci : |
| <code bash> | <code bash> |
| #ProtectHome=true | [Service] |
| </code> | ProtectHome=false |
| | </code> |
| | 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 relançons **systemd**: | Ensuite, nous indiquons à **systemd** que nous avons modifié ses fichiers de configuration : |
| <code bash> | <code bash> |
| systemctl daemon-reload | systemctl daemon-reload |
| </code> | </code> |
| |
| | ===== 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 |
| | <code bash> |
| | nano /etc/apparmor.d/usr/sbin.mysqld |
| | </code> |
| | 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 |
| | <code bash> |
| | systemctl reload apparmor |
| | </code> |
| ===== Démarrage du service mariaDB ===== | ===== Démarrage du service mariaDB ===== |
| |
| systemctl start mariadb.service | systemctl start mariadb.service |
| </code> | </code> |
| | puis un petit : |
| | <code bash> |
| | systemctl status mariadb.service |
| | </code> |
| | pour vérifier que tout fonctionne correctement. |
| ===== Aller plus loin ===== | ===== Aller plus loin ===== |
| |
| * [22/09/2020] : MAJ pour Debian Buster (Debian 10) | * [22/09/2020] : MAJ pour Debian Buster (Debian 10) |
| * [02/11/2021] : MAJ Debian Bullseye (Debian 11) | * [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 ===== | ===== Auteurs et sources ===== |