Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

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.

Problèmes connus

Voir aussi

QR Code
QR Code Changer l’emplacement des bases de données mysql (generated for current page)