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 ===== |