web-dev-qa-db-fra.com

Comment changer le propriétaire du point de montage

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?

46
Arie K

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.

43
Cristian Ciupitu

aussi

mount device mount-point -o uid=foo -o gid=foo

si le groupe doit aussi être changé

34
user55650

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"

11
Frank Nocke

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!

4
Tom Werner

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

2
Saurabh Barjatiya

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.

2
Nasko