−Table des matières
Changer l’emplacement des bases de données mysql
Introduction
Pré-requis
- une machine sous debian avec accès root
- un serveur mysql
Dans l'exemple, nous choisissons comme nouvel emplacement /srv/data/mysql
Première étape : connaître l'emplacement actuel du dossier mysql
- Affichez le fichier /etc/mysql/mariadb.conf.d/50-server.cnf :
...@...:~$ cat /etc/mysql/mariadb.conf.d/50-server.cnf (...) # * Basic Settings # user = mysql pid-file = /run/mysqld/mysqld.pid socket = /run/mysqld/mysqld.sock #port = 3306 basedir = /usr datadir = /var/lib/mysql (...)
- cherchez la ligne définissant datadir (par défaut /var/lib/mysql) : c'est l'emplacement cherché.
Autres étapes
- Créez le nouveau dossier :
...@...:~$ sudo mkdir /srv/data/mysql
- Rendez mysql propriétaire du nouveau dossier :
...@...:~$ sudo chown mysql:mysql /srv/data/mysql
- Allez dans votre datadir actuel :
...@...:~$ cd /var/lib/mysql
- Stoppez le service mysql pour éviter une copie non correcte :
...@...:~$ sudo systemctl stop mysql
- copiez les bases dans le nouveau dossier :
...@...:~$ sudo cp * /srv/data/mysql
Ça peut prendre du temps selon la taille du dossier
- Éditez avec les droits d'administration le fichier /etc/mysql/mariadb.conf.d/50-server.cnf :
...@...:~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
et modifiez la directive datadir par votre nouveau dossier (ici /srv/data/mysql)
- Redémarrez mysql :
...@...:~$ sudo systemctl start mysql
- Ouvrez mysql :
...@...:~$ sudo mysql -u root -p Enter password: (...) MariaDB [(none)]> create database newdir_test; (...) MariaDB [(none)]> exit Bye
- Lancez :
...@...:~$ ls /srv/data/mysql | grep newdir_test newdir_test
Si newdir_test s’affiche, c’est que tout marche bien
- Effacez la base de test :
...@...:~$ sudo mysql -u root -p Enter password: (...) MariaDB [(none)]> drop database newdir_test; (...) MariaDB [(none)]> exit Bye
- vous pouvez supprimer l’ancien datadir de mysql avec la commande :
...@...:~$ sudo rm -rf /var/lib/mysql
Conclusion
Vous venez de déplacer vos bases de données mysql.