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

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:22] zonewebmasterserveur-debian-mariadb:deplacer-var-lib-mysql [12/06/2022 15:54] (Version actuelle) – [Le cas de app.armor] zonewebmaster
Ligne 8: Ligne 8:
 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)
Ligne 35: Ligne 35:
 ===== 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>
  
Ligne 63: Ligne 64:
 ===== 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
Ligne 100: Ligne 103:
 </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 =====
  
Ligne 106: Ligne 120:
 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 =====
  
Ligne 121: Ligne 139:
   * [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 =====
  • serveur-debian-mariadb/deplacer-var-lib-mysql.1635844947.txt.gz
  • Dernière modification : 02/11/2021 10:22
  • de zonewebmaster