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:
-
* Un serveur Ubuntu 16.04 avec un utilisateur non root avec les privilèges
+ sudo +
*. Vous pouvez en savoir plus sur la configuration d’un utilisateur avec ces privilèges dans notre Initial Initial Server Setup with Ubuntu 16.04. guider. -
* Un serveur MySQL *. Si vous n’en avez pas encore configuré, le guide https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04 (Comment installer MySQL sur Ubuntu 16.04]) peut vous aider.
-
* Une sauvegarde de vos bases de données *. Sauf si vous travaillez avec une nouvelle installation de MySQL, vous devez vous assurer de disposer d’une sauvegarde de vos données. Le guide Comment faire pour sauvegarder des bases de données MySQL sur un VPS Ubuntu peut vous aider.
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.