Vous devrez peut-être changer le répertoire de données MySQL en raison d'un espace de partition insuffisant sur /var ou /root et changer le répertoire de données en /home pour votre serveur, y compris cPanel. Il peut également y avoir une autre raison pour modifier le répertoire de données.
Par défaut, le répertoire de données MySQL/MariaDB est /var/lib/mysql . Il stocke toutes les bases de données dans /var/lib/mysql . Veuillez vous référer aux étapes suivantes pour changer le répertoire de données MySQL en /home. Nous supposons que vous êtes
- Tout d'abord, nous allons créer une sauvegarde de toutes les bases de données MySQL afin qu'en cas de problème, nous n'encourions aucune perte de données.
# tar -cvf mysql.tar /var/lib/mysql
- Une fois que vous avez terminé la sauvegarde, arrêtez le service MariaDB avec la commande ci-dessous.
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status
- Installez la commande screen
yum install screen
screen // It will create screen - Maintenant, nous allons synchroniser toutes les bases de données MySQL avec le /home/mysql. La commande suivante créera un répertoire mysql dans /home et lancera le processus de synchronisation.
rsync -avz /var/lib/mysql to /home
- Pendant que la synchronisation est en cours, vous pouvez également travailler sur d'autres tâches. Une fois que plusieurs écrans sont créés, vous pouvez reprendre/basculer entre les écrans comme suit.
screen -r // it will resume previous screen
ctrl A and ctrl D // for return to main screen
ctrl A and shift ? // for screen command menu - Pour modifier le répertoire de données MySQL/MariaDB, modifiez le fichier /etc/my.cnf avec votre éditeur préféré.
vi /etc/my.cnf
- Changer le répertoire de données de /var/lib/mysql au /domicile. Si vous ne trouvez pas une ligne existante de datadir, vous pouvez ajouter une nouvelle ligne comme ci-dessous.
datadir=/home/mysql
- Vous devrez réassocier le fichier socket au /tmp.
# rm -rf /tmp/mysql.sock
# ln -sf /home/mysql/mysql.sock /tmp/mysql.sock - Pour exécuter le service MariaDB depuis /home, vous devez modifier le fichier mariadb.service à l'emplacement /usr/lib/systemd/system/mariadb.service.
ProtectHome=true to ProtectHome=false
- Enfin, démarrez votre service MariaDB.
systemctl start mariadb
- Votre service MariaDB peut échouer avec l'avertissement ci-dessous. Pour résoudre cette erreur, vous pouvez redémarrer le serveur et redémarrer le service MariaDB et cela fonctionnera à nouveau.
MariaDB cannot start after update: [Warning] Need to run systemctl daemon-reload
- Pour vérifier la fonctionnalité, nous devrons créer une base de données à partir de cPanel et elle doit être créée dans /home/mysql. Veuillez vous référer à cPanel> créer une base de données MySQL pour créer une base de données MySQL. Si votre base de données est créée dans /home/mysql, cela signifie que vous réussissez dans votre tâche.
- Si tout fonctionne correctement, vous pouvez supprimer l'ancien répertoire de données de /var/lib/mysql.
rm -rf /var/lib/mysql