Puis-je configurer MySQL pour stocker une base de données spécifique dans un emplacement séparé sur le disque?
Je veux toujours que toutes les nouvelles bases de données soient placées à l'emplacement par défaut, mais il y a une base de données spécifique que j'aimerais stocker dans mon dossier Dropbox afin qu'il puisse rester synchronisé entre quelques ordinateurs.
Comment puis-je faire ceci?
Bien sûr vous pouvez! Vous devez accorder la permission de la racine. Lisez les ln pages de manuel.
MySQL stocke les données de la base de données dans des répertoires séparés dans /var/lib/mysql
. Je pense qu'au début, vous deviez créer un répertoire dans lequel vous souhaitez placer les fichiers de la base de données sélectionnée. Accordez la permission racine, arrêtez MySQL deamon:
# /etc/init.d/mysql stop
Copiez vos données dans votre nouveau dossier:
# cp /var/lib/mysql/DATABASENAME /path/to/new/database/dir
Supprimez votre ancien répertoire des fichiers de données MySQL: (Attention! TOUJOURS faire le dump SQL en premier !!!)
# rm -R /var/lib/mysql/DATABASENAME
Créez un lien symbolique vers le répertoire de données MySQL: (Faites attention! Lisez la page de manuel de ln first !!!)
# ln -s /full/path/to/new/database/dir /var/lib/mysql/DATABASENAME
Après cela, vous êtes prêt, démarrez votre MySQL:
# /etc/init.d/mysql start
Attention! Si votre nouveau répertoire n'est pas écrit et lisible par MySQL, cela ne fonctionnera pas! Exemple, le problème courant: vous placez votre nouveau répertoire de données dans votre dossier de départ, votre dossier de départ est protégé en lecture par d’autres (ex: drwxrwx --- you you yourdir).
Demandez, si vous voulez savoir d'autres choses sur cette méthode!
N'oubliez pas que si vous utilisez Ubuntu, vous devez également ajouter une entrée dans le fichier de configuration d'AppArmour /etc/apparmor.d/usr.sbin.mysqld, sinon vous obtiendrez des erreurs d'autorisation d'écriture même si vous modifiez des fichiers et des dossiers. autorisations.