Comment modifier un répertoire de données MySQL / MARIADB par défaut dans Linux

Comment modifier un répertoire de données MySQL / MARIADB par défaut dans Linux

Après avoir installé les composants d'une pile de lampe sur un serveur CENTOS / RHEL 7, il y a quelques choses que vous voudrez peut-être faire.

Certains d'entre eux ont à voir avec l'augmentation de la sécurité de l'Apache et du MySQL / MARIADB, tandis que d'autres peuvent être applicables ou non en fonction de notre configuration ou de nos besoins.

Par exemple, en fonction de l'utilisation attendue du serveur de base de données, nous pouvons vouloir modifier la valeur par défaut données répertoire (/ var / lib / mysql) à un endroit différent. C'est le cas lorsqu'un tel répertoire devrait croître en raison d'une utilisation élevée.

Sinon, le système de fichiers où / var est stocké peut s'effondrer à un moment donné provoquant l'échec de l'ensemble du système. Un autre scénario où la modification du répertoire par défaut est lorsque nous avons un partage de réseau dédié que nous voulons utiliser pour stocker nos données réelles.

Pour cette raison, dans cet article, nous expliquerons comment changer le répertoire de données MySQL / MARIADB par défaut en un chemin différent sur un serveur CentOS / RHEL 7 et les distributions Ubuntu / Debian.

Bien que nous utiliserons Mariadb, Les concepts expliqués et les mesures prises dans cet article s'appliquent à la fois à Mysql et à Mariadb Sauf indication contraire.

Modification du répertoire de données MySQL / MARIADB par défaut

Note: Nous allons supposer que notre nouveau répertoire de données est / mnt / mysql-data. Il est important de noter que ce répertoire devrait appartenir à mysql: mysql.

# mkdir / mnt / mysql-data # chown -r mysql: mysql / mnt / mysql-data 

Pour votre commodité, nous avons divisé le processus en 5 étapes faciles à suivre:

Étape 1: Identifier le répertoire de données MySQL actuel

Pour commencer, il est digne et bien d'identifier le répertoire de données actuel à l'aide de la commande suivante. Ne supposez pas que c'est toujours / var / lib / mysql car il aurait pu être changé dans le passé.

# mysql -u root -p -e "select @@ datadir;" 

Après avoir saisi le mot de passe MySQL, la sortie doit être similaire à.

Identifier le répertoire de données MySQL

Étape 2: Copiez le répertoire des données MySQL dans un nouvel emplacement

Pour éviter la corruption des données, arrêtez le service s'il est actuellement en cours d'exécution avant de continuer. Utilisez le systemd Commandes bien connues pour le faire:

------------- Sur systemd ------------- # systemctl stop mariaDB # systemctl IS-active mariaDB ------------- Sur sysvinit ------------- # service mysqld stop # service statut mysqld ou # service mysql stop # service mysql status 

Si le service a été ramené, la sortie de la dernière commande doit être la suivante:

Stop MySQL Service

Puis copier récursivement le contenu de / var / lib / mysql pour / mnt / mysql-data Préservation des autorisations et horodatages originaux:

# cp -r -p / var / lib / mysql / * / mnt / mysql-data 
Copier le répertoire de données MySQL vers un nouvel emplacement

Étape 3: Configurer un nouveau répertoire de données MySQL

Modifier le fichier de configuration (mon.CNF) pour indiquer le nouveau répertoire de données (/ mnt / mysql-data dans ce cas).

# vi / etc / mon.CNF ou # vi / etc / mysql / mon.CNF 

Localiser le [mysqld] et [client] Sections et apporter les modifications suivantes:

Sous [mysqld]: datadir = / mnt / mysql-data socket = / mnt / mysql-data / mysql.chaussette Sous [Client]: port = 3306 socket = / mnt / mysql-data / mysql.chaussette 

Enregistrez les modifications, puis procédez à l'étape suivante.

Configurer le nouveau répertoire de données MySQL

Étape 4: Définissez le contexte de sécurité Selinux vers le répertoire de données

Cette étape ne s'applique qu'à Rhel / centos et ses dérivés.

Ajouter le contexte de sécurité SELINUX à / mnt / mysql-data Avant de redémarrer Mariadb.

# SEMANAGE FContext -a -t mysqld_db_t "/ mnt / mysql-data (/.*)?"# restorecon -r / mnt / mysql-data 

Redémarrez le service MySQL.

------------- Sur systemd ------------- # systemctl stop mariaDB # systemctl IS-active mariaDB ------------- Sur sysvinit ------------- # service mysqld stop # service statut mysqld ou # service mysql stop # service mysql status 

Maintenant, utilisez la même commande que dans Étape 1 Pour vérifier l'emplacement du nouveau répertoire de données:

# mysql -u root -p -e "select @@ datadir;" 
Vérifiez le nouveau répertoire de données MySQL

Étape 5: Créez une base de données MySQL pour confirmer le répertoire de données

Connectez-vous à MariaDB, créez une nouvelle base de données, puis vérifiez / mnt / mysql-data:

# mysql -u root -p -e "Créer une base de données tecmint;" 
Vérifiez le nouveau répertoire de données MySQL

Toutes nos félicitations! Vous avez réussi à modifier le répertoire de données pour MySQL ou MARIADB.

Résumé

Dans cet article, nous avons discuté de la façon de modifier le répertoire de données dans un serveur MySQL ou MARIADB fonctionnant sur Centos / Rhel 7 et Ubuntu / Debian Distributions.

Avez-vous des questions ou des commentaires sur cet article? N'hésitez pas à nous faire savoir en utilisant le formulaire ci-dessous - nous sommes toujours heureux de vous entendre!