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-server.cnf
:
nano /etc/mysql/mariadb.conf.d/50-server.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
mariadb trouve automatiquement le chemin vers les nouveaux fichiers ou je n’ai pas compris ou le renseigner ?
Un petit oubli de ma part, c’est ajouté… merci à toi :-)
systemctl edit mariadb.service
puis ajouter
[Service]
ProtectHome=true
sinon mariadb ne redémarre pas au prochain upgrade
Salut jsm,
justement, je comment le ligne
ProtecHome
car sinon je me retrouve avec l’erreur : mysql can’t creat test files .lower-test et impossible de démarrer mariadb…Pour ma part, je passe par un lien symbolique.
Bonjour et merci, il y a juste une faute de frappe à :
nano /etc/mysql/mariadb.conf.d/50-servers.cnf
c’est sans « s » …./50-server.cnf
Sinon merci encore, ça marche trés bien et j’aurais galéré un peu pour tout passer dans l’ordre.
Salut !
oups, c’est corrigé :-)