Un mémo sur comment déplacer le répertoire /var/lib/mysql
vers la partition /home
afin d’éviter la saturation de la partition système du serveur.
Dans le cas présent, le déplacement du répertoire hébergeant les bases de données, a été déplacé après saturation de la partition système. Ce qui a eu pour conséquence d’arrêter le serveur MariaDB de façon brutal.
Déplacer le répertoire /var/lib/mysql
- Stopper le serveur MariaDB, si ce n’est pas déjà fait :
systemctl stop mariadb.service
/var/lib/mysql
vers /home/{user}/
(remplacer la variable {user} pour votre login) mv /var/lib/mysql /home/{user}/
chown -R mysql:mysql /home/{user}/mysql
Modifier le chemin de la base de données dans le fichier de configuration de MariaDB
- Éditer le fichier
/etc/mysql/mariadb.conf.d/50-servers.cnf
:
nano /etc/mysql/mariadb.conf.d/50-servers.cnf
datadir = /var/lib/mysql
par
datadir = /home/{user}/mysql
Modifier le service mariadb.service
Pour éviter l’erreur : mysql can’t creat test files .lower-test
- Éditer le fichier
/etc/systemd/system/multi-user.target.wants/mariadb.service
:
nano /etc/systemd/system/multi-user.target.wants/mariadb.service
ProtectHome=true
:#ProtectHome=true
systemctl daemon-reload
Supprimer le fichier tc.log
Supprimer le fichier tc.log
afin d’éviter l’erreur : [ERROR] Can’t init tc log
rm /home/{user}/mysql/tc.log
Démarer le serveur MariaDB
A ce stade, il est possible de redémarrer le serveur de base de données MariaDB :
systemctl start mariadb.service
Réparer les tables de la base de données
Par précaution, une tache d’auto-réparation de table va être exécutées afin d’éviter l’erreur : is marked as crashed and should be repaired
mysqlcheck -u root -p --auto-repair --check database