Comment changer un répertoire de données MySQL vers un nouvel emplacement en utilisant un lien symbolique

introduction

Les bases de données grandissent avec le temps, dépassant parfois l’espace sur le système de fichiers. Vous pouvez également rencontrer des conflits d’entrées / sorties s’ils se trouvent sur la même partition que le reste du système d’exploitation. Le RAID, le stockage de bloc réseau et d’autres périphériques peuvent offrir une redondance et d’autres fonctionnalités souhaitables. Que vous ajoutiez plus d’espace, recherchiez des moyens d’optimiser les performances ou cherchant à tirer parti d’autres fonctionnalités de stockage, ce didacticiel vous guidera tout au long du processus de déplacement du répertoire de données de MySQL.

Les instructions fournies ici conviennent aux serveurs qui exécutent une seule instance de MySQL. Si vous avez plusieurs instances, le guide https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-directory-to-a-new-location-on-ubuntu-16- 04 [Comment déplacer un répertoire de données MySQL vers un nouvel emplacement sur Ubuntu 16.04] peut vous aider à choisir explicitement l’emplacement avec les paramètres de configuration.

Conditions préalables

Pour compléter ce guide, vous aurez besoin de:

Dans cet exemple, nous déplaçons les données vers un périphérique de stockage de bloc monté sur + / mnt / volume-nyc1-01 +. Vous pouvez apprendre à en configurer un dans le guide Comment utiliser Block Storage sur DigitalOcean.

Quel que soit le stockage sous-jacent que vous utilisez, ce guide peut vous aider à déplacer le répertoire de données vers un nouvel emplacement.

Étape 1 - Déplacement du répertoire de données MySQL

Pour assurer l’intégrité des données, nous allons arrêter MySQL:

sudo systemctl stop mysql

+ systemctl + n’affiche pas le résultat de toutes les commandes de gestion des services. Si vous voulez être sûr d’avoir réussi, utilisez la commande suivante:

sudo systemctl status mysql

Vous pouvez être sûr qu’il est arrêté si la dernière ligne de la sortie vous indique que le serveur est arrêté:

Output. . .
Jul 18 11:24:20 ubuntu-512mb-nyc1-01 systemd[1]: Stopped MySQL Community Server.

Avec le serveur arrêté, nous allons déplacer le répertoire de base de données existant vers le nouvel emplacement:

sudo mv /var/lib/mysql

Ensuite, nous allons créer le lien symbolique:

sudo ln -s  /var/lib/mysql

Avec le lien symbolique en place, cela semble être le bon moment pour afficher à nouveau MySQL, mais il reste encore une chose à configurer avant de pouvoir le faire avec succès.

Étape 2 - Configuration des règles de contrôle d’accès AppArmor

Lorsque vous déplacez le répertoire MySQL vers un système de fichiers différent du serveur MySQL, vous devez créer un alias AppArmor.

Pour ajouter l’alias, éditez le fichier AppArmor + alias +:

sudo nano /etc/apparmor.d/tunables/alias

Au bas du fichier, ajoutez la règle d’alias suivante:

/etc/apparmor.d/tunables/alias

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

Pour que les modifications prennent effet, redémarrez AppArmor:

sudo systemctl restart apparmor

Nous sommes maintenant prêts à démarrer MySQL.

sudo systemctl start mysql
sudo systemctl status mysql

Une fois que vous avez redémarré MySQL, saisissez l’occasion pour vous assurer que vos données sont en ordre et que MySQL fonctionne comme prévu.

Conclusion

Dans ce didacticiel, nous avons déplacé les données de MySQL et utilisé un lien symbolique pour informer MySQL du nouvel emplacement. Nous avons également mis à jour les listes de contrôle d’accès AppArmor d’Ubuntu pour tenir compte de cet ajustement. Bien que nous utilisions un périphérique de stockage en bloc, les instructions fournies ici devraient permettre de redéfinir l’emplacement du répertoire de données, quelle que soit la technologie sous-jacente.

Cette approche ne convient que si vous exécutez une seule instance de MySQL. Si vous devez prendre en charge plusieurs instances de MySQL s’exécutant sur un même serveur, consultez https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-directory-to-a-new-location- on-ubuntu-16-04 [Comment déplacer un répertoire de données MySQL vers un nouvel emplacement sur Ubuntu 16.04] peut vous aider.

Related