Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment changer un répertoire de données MySQL/MariaDB par défaut sous Linux

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 !