Comment changer le répertoire de données MySQL / MARIADB sur Ubuntu

Comment changer le répertoire de données MySQL / MARIADB sur Ubuntu
Par défaut, les serveurs de base de données MySQL / MARIADB SQL mettent leurs données sur le système de fichiers racine. Ce n'est pas ce que vous voulez dans vos serveurs de production la plupart du temps. Vous pouvez placer les données du serveur de base de données sur un autre disque dur ou une partition SSD.

Dans cet article, je vais vous montrer comment modifier le répertoire de données par défaut de la base de données de la base de données MySQL / MARIADB sur Ubuntu. Alors, commençons.

Installation de MySQL / MARIADB sur Ubuntu:

Les packages de base de données MySQL / MARIADB sont disponibles dans le référentiel officiel du package Ubuntu. Ainsi, vous pouvez facilement l'installer à partir de là en utilisant le gestionnaire de packages APT.

Tout d'abord, mettez à jour le cache du référentiel de package APT avec la commande suivante:

$ sudo apt mise à jour

Maintenant, si vous souhaitez installer le serveur de base de données MySQL, exécutez la commande suivante:

$ sudo apt installer mysql-server mysql-client

Si vous souhaitez installer le serveur de base de données MARIADB, exécutez la commande suivante:

$ sudo apt installer MariaDb-Server MariaDB-Client

Je vais installer le serveur de base de données MARIADB dans cet article. Vous pouvez installer mysql si vous voulez.

Une fois que vous avez exécuté la commande d'installation requise, vous devriez voir l'invite suivante. Presse y Et puis appuyez sur continuer.

Le serveur de base de données MySQL / MARIADB doit être installé.

Trouver le répertoire de données MySQL / MARIADB par défaut:

Vous pouvez trouver le répertoire de données par défaut de la base de données MySQL / MARIADB très facilement avec le grep ou faire un coup de pouce commande.

$ sudo grep -r --color datadir / etc / mysql / *

Comme vous pouvez le voir, le répertoire de données par défaut pour le serveur de base de données MARIADB est / var / lib / mysql. Le fichier de configuration du serveur de base de données MARIADB est / etc / mysql / mariadb.confli.d / 50-serveur.CNF. Si vous souhaitez modifier le répertoire de données par défaut du serveur de base de données MARIADB, vous devez le modifier dans le fichier de configuration / etc / mysql / mariadb.confli.d / 50-serveur.CNF.

Le répertoire de données par défaut pour le serveur de base de données MySQL est / var / lib / mysql aussi. Mais le fichier de configuration est différent pour le serveur de base de données MySQL. Pour MySQL, le fichier de configuration est / etc / mysql / mysql.confli.d / mysqld.CNF. Si vous avez installé le serveur de base de données MySQL, puis pour modifier le répertoire de données par défaut, vous devez modifier ce fichier de configuration.

Dans les sections suivantes, je vais vous montrer comment préparer un disque dur ou une partition SSD pour le répertoire de données MySQL / MARIADB et modifier le répertoire de données par défaut.

Préparation du répertoire de données MySQL / MARIADB:

Dans cette section, je vais vous montrer comment préparer votre disque dur ou votre partition SSD pour le répertoire de données MySQL / MARIADB.

Vous pouvez répertorier tous les disques durs ou SSD installés sur votre ordinateur avec la commande suivante:

$ sudo lsblk | disque grep

Tous les disques durs et les SSD installés doivent être répertoriés. SDB est le disque dur où je veux mettre mes données MySQL / MARIADB. Le vôtre devrait être différent. Alors, remplacez-le par le vôtre à partir de maintenant.

Maintenant, vous devez faire une nouvelle partition sur le disque dur SDB avec fdisk.

NOTE: Dans cette section, je ne passerai pas les détails sur le fonctionnement du fdisk. Pour apprendre à partitionner des disques durs ou des SSD avec fdisk, lisez l'article comment utiliser fdisk dans Linux.

Pour faire une partition sur le disque dur SDB, Ouvrez-le avec fdisk comme suit:

$ sudo fdisk / dev / sdb

Maintenant, appuyez sur n Et puis appuyez sur .

Maintenant, appuyez sur p Et puis appuyez sur .

Maintenant, appuyez sur .

Presse .

Presse . Une nouvelle partition doit être créée.

Maintenant, appuyez sur w et presser .

Disons que la partition du disque dur que vous souhaitez utiliser comme répertoire de données MySQL / MARIADB est / dev / sdb1.

Maintenant, formatez la partition / dev / sdb1 avec la commande suivante:

$ sudo mkfs.ext4 -l db_data / dev / sdb1

Maintenant, faites un nouveau répertoire / db Pour Moutning le / dev / sdb1 cloison.

$ sudo mkdir / db

/ db sera le nouveau répertoire de données de MySQL / MARIADB.

Ouvert / etc / fstab fichier avec la commande suivante:

$ sudo nano / etc / fstab

Maintenant, ajoutez la ligne suivante à la fin du fichier et enregistrez le fichier en appuyant sur + X suivie par y et .

/ dev / sdb1 / db ext4 par défaut 0 0

Redémarrez maintenant votre ordinateur avec la commande suivante:

$ sudo redémarrer

Une fois que votre ordinateur bottait, / dev / sdb1 devrait être monté sur / db Comme vous pouvez le voir dans la capture d'écran ci-dessous.

$ df -h / db

Maintenant, changez le propriétaire et le groupe du / db répertoire de mysql avec la commande suivante:

$ sudo chown mysql: mysql / db

Maintenant, vous devez arrêter le service de base de données MySQL / MARIADB et copier tous les fichiers du répertoire de données par défaut / var / lib / mysql au nouveau répertoire de données / db.

Si vous utilisez MARIADB, alors arrêtez le service MARIADB avec la commande suivante:

$ sudo systemctl stop mariadb

Si vous utilisez MySQL, alors arrêtez le service MySQL avec la commande suivante:

$ sudo systemctl stop mysql

Maintenant, copiez tout le contenu du répertoire de données par défaut / var / lib / mysql au nouveau répertoire de données / db avec la commande suivante:

$ sudo rsync -avzh / var / lib / mysql / / db

Tout le contenu de / var / lib / mysql Le répertoire doit être copié dans le nouveau répertoire / db.

/ db Le répertoire est maintenant prêt à être le nouveau répertoire de données MySQL / MARIADB.

Configuration de l'Apparmor:

Maintenant, vous devez configurer Apparmor pour autoriser / db être un répertoire de données MySQL / MARIADB.

Pour ce faire, modifiez le fichier Alias ​​Apparmor / etc / Apparmor.D / tunables / alias comme suit:

$ sudo nano / etc / Apparmor.D / tunables / alias

Maintenant, ajoutez la ligne suivante à la fin du fichier et enregistrez-la en appuyant sur + X suivie par y et .

alias / var / lib / mysql -> / db,

Maintenant, redémarrez le service Apparmor avec la commande suivante:

$ sudo systemctl redémarrer Apparmor

Maintenant, vous êtes prêt à modifier le répertoire de données de MySQL / MARIADB.

Modification du répertoire de données MySQL / MARIADB:

Pour modifier le répertoire de données à partir de / var / lib / mysql pour / db, Vous devez modifier le fichier de configuration requis selon que vous utilisez MySQL / MARIADB.

Si vous utilisez MariaDB, alors le fichier de configuration que vous devez modifier est / etc / mysql / mariadb.confli.d / 50-serveur.CNF.

Si vous utilisez MySQL, alors le fichier de configuration à modifier est / etc / mysql / mysql.confli.d / mysqld.CNF.

Maintenant, modifiez le fichier de configuration requis selon que vous utilisez MySQL / MARIADB comme suit:

Mariadb:

$ sudo nano / etc / mysql / mariadb.confli.d / 50-serveur.CNF

Mysql:

$ sudo nano / etc / mysql / mysql.confli.d / mysqld.CNF

Maintenant, trouvez la ligne marquée dans la capture d'écran ci-dessous.

Changer la datadir pour / db Comme indiqué dans la capture d'écran ci-dessous. Puis enregistrez le fichier en appuyant sur + X suivie par y et .

Maintenant, commencez le service MySQL / Mariabd avec la commande suivante:

Mariadb:

$ sudo systemctl start mariadb

Mysql:

$ sudo systemctl start mysql

Tester MySQL / MARIADB:

Maintenant, essayez de vous connecter au serveur MySQL / MARIADB comme suit:

$ sudo mysql -u root -p

Ensuite, saisissez le mot de passe du serveur MySQL / MARIADB et appuyez sur .

Vous devriez être connecté à la coque MySQL / MariaDB comme racine Utilisateur de la base de données. C'est une indication que ça marche.

Mais, juste pour être sûr, saisissez la requête suivante pour trouver le répertoire MySQL / MARIADB utilise actuellement comme répertoire de données.

SQL> SELECT @@ datadir;

Comme vous pouvez le voir, le répertoire de données actuel est / db Tout comme je suis configuré.

C'est donc ainsi que vous modifiez le répertoire de données MySQL / MARIADB sur Ubuntu. Merci d'avoir lu cet article.