Après avoir installé les composants d'une pile LAMP sur un serveur CentOS/RHEL 7, vous pouvez effectuer plusieurs opérations.
Certains d'entre eux ont à voir avec l'augmentation de la sécurité d'Apache et de MySQL / MariaDB, tandis que d'autres peuvent être applicables ou non selon notre configuration ou nos besoins.
Par exemple, en fonction de l'utilisation prévue du serveur de base de données, nous pouvons souhaiter modifier les données par défaut répertoire (/var/lib/mysql
) vers un autre emplacement. C'est le cas lorsqu'un tel répertoire est censé se développer 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 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 vers 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 étapes suivies 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
Remarque :Nous allons supposer que notre nouveau répertoire de données est /mnt/mysql-data
. Il est important de noter que ce répertoire doit 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 :Identifiez le répertoire de données MySQL actuel
Pour commencer, il convient et bien d'identifier le répertoire de données courant à l'aide de la commande suivante. Ne supposez pas simplement qu'il s'agit toujours de /var/lib/mysql
puisqu'il aurait pu être changé dans le passé.
# mysql -u root -p -e "SELECT @@datadir;"
Après avoir entré le mot de passe MySQL, la sortie devrait ressembler à.
Étape 2 :Copiez le répertoire de données MySQL vers un nouvel emplacement
Pour éviter la corruption des données, arrêtez le service s'il est en cours d'exécution avant de continuer. Utilisez le systemd commandes bien connues pour le faire :
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Si le service a été arrêté, la sortie de la dernière commande doit être la suivante :
Copiez ensuite récursivement le contenu de /var/lib/mysql
vers /mnt/mysql-data
en préservant les autorisations et les horodatages d'origine :
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
Étape 3 :Configurer un nouveau répertoire de données MySQL
Editez le fichier de configuration (my.cnf
) pour indiquer le nouveau répertoire de données (/mnt/mysql-data
dans ce cas).
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
Localisez le [mysqld]
et [client]
sections et apportez les modifications suivantes :
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
Enregistrez les modifications, puis passez à l'étape suivante.
Étape 4 :Définir le contexte de sécurité SELinux sur le répertoire de données
Cette étape s'applique uniquement à RHEL/CentOS et ses dérivés.
Ajoutez 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 ensuite le service MySQL.
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Maintenant, utilisez la même commande qu'à l'étape 1 pour vérifier l'emplacement du nouveau répertoire de données :
# mysql -u root -p -e "SELECT @@datadir;"
Étape 5 :Créer 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 "CREATE DATABASE tecmint;"
Toutes nos félicitations! Vous avez modifié avec succès le répertoire de données pour MySQL ou MariaDB.
Résumé
Dans cet article, nous avons expliqué comment modifier le répertoire de données dans un serveur MySQL ou MariaDB exécuté sur les distributions CentOS/RHEL 7 et Ubuntu/Debian.
Avez-vous des questions ou des commentaires sur cet article? N'hésitez pas à nous le faire savoir en utilisant le formulaire ci-dessous - nous sommes toujours heureux d'avoir de vos nouvelles !