Nous avons déplacé le répertoire de données mysql sur un autre disque, alors maintenant /var/lib/mysql
n'est qu'un point de montage sur une autre partition. Nous avons défini le propriétaire du /var/lib/mysql
répertoire vers mysql.mysql
.
Mais chaque fois que nous montons la partition, la propriété change en root.root
. Pour cette raison, nous n'avons pas pu créer de base de données MySQL supplémentaire.
Notre entrée fstab:
/dev/mapper/db-db /var/lib/mysql ext3 relatime 0 2
Comment changer le propriétaire du point de montage en un utilisateur autre que root?
Vous devez modifier les autorisations du système de fichiers monté, et non du point de montage lorsque le système de fichiers n'est pas monté. Donc mount /var/lib/mysql
puis chown mysql.mysql /var/lib/mysql
. Cela modifiera les autorisations de la racine du système de fichiers MySQL DB.
L'idée de base est que le système de fichiers contenant la base de données doit être changé, pas le point de montage, à moins que son chemin ait des problèmes, par ex. lib
ne peut être lu que par root.
aussi
mount device mount-point -o uid=foo -o gid=foo
si le groupe doit aussi être changé
Ajoutez uid et gid comme ceux-ci:
/dev/mapper/db-db /var/lib/mysql ext3 relatime,rw,exec,uid=frank,gid=www-group 0 2
Vous pouvez utiliser des noms d'utilisateur/de groupe réels (méfiez-vous des espaces) ou des valeurs uid et gid numériques. J'ai ajouté rw et exec qui pourraient vous aider à prévenir les problèmes d'accès (en supposant que vous êtes sur un système de développement, pas sur un serveur de production).
PS: pour encore plus d'accès (si vous le souhaitez), ajoutez ", dir_mode = 0777, file_mode = 0777"
Assurez-vous de modifier les autorisations lorsque le système de fichiers n'est pas monté - le faire pendant le montage n'a jamais fonctionné pour moi.
De plus, vous pouvez ajouter l'option 'utilisateur' à votre fstab, exemple:
/dev/mapper/db-db /var/lib/mysql ext3 relatime,user 0 2
Cela devrait également signifier que la commande mount (si elle doit être appelée) n'aura pas besoin des privilèges root pour monter ce volume. Ne pas changer votre fstab ne vous empêchera pas de résoudre votre problème!
Je le fais généralement sur un répertoire vide non monté
chmod 777 <directory>
Alors fais
chown -R mysql.mysql <directory>
Ensuite, dans/etc/fstab, faites
<device> <directory> ext3 user,defaults 0 2
Ensuite, utilisez
mount -a
pour monter tous les systèmes de fichiers répertoriés dans/etc/fstab.
Cela fonctionne pour moi. Essaie
Si vous souhaitez le faire uniquement dans le cadre de la ligne de commande mount
, vous pouvez utiliser le -o
changer et faire:
mount device mount-point -o uid=foo
Cela changera le propriétaire du point de montage en utilisateur foo
au lieu de root.