Wir haben das MySQL-Datenverzeichnis auf eine andere Festplatte verschoben, sodass es jetzt /var/lib/mysql
nur noch ein Einhängepunkt für eine andere Partition ist. Wir haben den Besitzer des /var/lib/mysql
Verzeichnisses auf festgelegt mysql.mysql
.
Aber jedes Mal, wenn wir die Partition mounten, ändert sich der Besitz zu root.root
. Aus diesem Grund konnten wir keine zusätzliche MySQL-Datenbank erstellen.
Unser fstab-Eintrag:
/dev/mapper/db-db /var/lib/mysql ext3 relatime 0 2
Wie ändere ich den Besitzer eines Einhängepunkts in einen anderen Benutzer als Root?
Antwort1
Sie müssen die Berechtigungen des gemounteten Dateisystems ändern, nicht die des Mount-Punkts, wenn das Dateisystem nicht gemountet ist. Dann mount /var/lib/mysql
also chown mysql.mysql /var/lib/mysql
… Dadurch werden die Berechtigungen des Stammverzeichnisses des MySQL DB-Dateisystems geändert.
Die Grundidee besteht darin, dass das Dateisystem, das die Datenbank enthält, geändert werden muss, nicht der Einhängepunkt, es sei denn, der Pfad weist Probleme auf, z. B. lib
kann er nur von Root gelesen werden.
Antwort2
Auch
mount device mount-point -o uid=foo -o gid=foo
wenn die Gruppe auch geändert werden muss
Antwort3
Wichtiger Haftungsausschluss (aus Kommentaren erfahren):
UID- und GID-Flags funktionieren nur auf Dateisystemen, die das Linux-Berechtigungsschema nicht unterstützen - z. B. FAT und NTFS.
Daher ist dies KEINE korrekte Antwort auf den OP, aber hilfreich für andere
Fügen Sie uid und gid wie folgt hinzu:
/dev/mapper/db-db /var/lib/mysql ext3 relatime,rw,exec,uid=frank,gid=www-group 0 2
Sie können tatsächliche Benutzer-/Gruppennamen (Achtung, Leerzeichen) oder numerische UID- und GID-Werte verwenden. Ich habe rw und exec hinzugefügt, was Ihnen weiter dabei helfen kann, Zugriffsprobleme zu vermeiden (vorausgesetzt, Sie verwenden ein Entwicklungssystem und keinen Produktionsserver).
PS: Für noch mehr Zugriff (falls gewünscht), fügen Sie ",dir_mode=0777,file_mode=0777" hinzu.
Antwort4
Normalerweise mache ich das in einem leeren, nicht gemounteten Verzeichnis.
chmod 777 <directory>
Dann mach
chown -R mysql.mysql <directory>
Führen Sie dann in /etc/fstab Folgendes aus
<device> <directory> ext3 user,defaults 0 2
Dann benutze
mount -a
um alle in /etc/fstab aufgeführten Dateisysteme zu mounten.
Das funktioniert bei mir. Probieren Sie es aus