Bağlanma noktasının sahibi nasıl değiştirilir?


44

MySQL veri dizinini başka bir diske taşıdık, şimdi /var/lib/mysqlbaşka bir bölüme bir bağlantı noktası. /var/lib/mysqlDizinin sahibini olarak ayarladık mysql.mysql.

Ancak bölümü her kurduğumuzda, mülkiyet değişir root.root. Bu nedenle, ek MySQL veritabanı oluşturamadık.

Fstab girişimiz:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime        0       2

Bağlama noktasının sahibini root dışındaki kullanıcı olarak nasıl değiştirebilirim?

Yanıtlar:


43

Dosya sistemi takılı değilken bağlama noktasının değil bağlı dosya sisteminin izinlerini değiştirmeniz gerekir. Öyleyse mount /var/lib/mysqlöyleyse chown mysql.mysql /var/lib/mysql. Bu MySQL DB dosya sisteminin kök izinlerini değiştirir.

Temel fikir, veri yolu DB'yi tutan dosya sisteminin, yolunda bazı sorunlar olmadığı sürece, bağlama noktasında değil, örneğin libsadece root tarafından okunması gerektiği şeklinde değiştirilmesi gerektiğidir.


32

Ayrıca

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

eğer grubun da değiştirilmesi gerekiyorsa


2
fooKullanıcı kimliğinin olduğu yerde, bağlantı noktasının sahibi olmak istediğiniz kullanıcı adıdır. Ve gid foo, kullanıcı grubunun adıdır, genellikle kullanıcı adıyla aynıdır. Kuşkusuz ls -l, ana dizininizi yazın ve sırasıyla ilk ve ikinci adları kontrol edin.
Zequez 12:12

10

Uid ekleyin ve şöyle gidiniz:

/dev/mapper/db-db  /var/lib/mysql ext3  relatime,rw,exec,uid=frank,gid=www-group        0       2

Gerçek kullanıcı / grup adlarını (boşluklardan sakının) veya sayısal kullanıcı adı, gid değerlerini kullanabilirsiniz. Erişim sorunlarını önlemek için daha fazla yardımcı olabilecek rw ve exec ekledim (bir üretim sunucusunda değil, geliştirme sistemindesiniz).

Not: Daha da fazla erişim için (istenirse), ", dir_mode = 0777, file_mode = 0777" ekleyin.


3
Hayır, bu relatime. lwn.net/Articles/244829
Endolit

7
-1 çünkü uidve gidbayraklar dosya sistemlerinde yalnızca eser yok Linux izinleri şemayı destekleyecek - yani FAT ve NTFS, diğerleri arasında. Bkz askubuntu.com/a/34068/329506
mgarciaisaia

2
evet, uid / gid sorununa rastladım - bir çözüm var mı?
tofutim

Bu FAT32 sürücümde bana yardımcı oldu. Teşekkür ederim.
Naeem Khan

3

Dosya sistemi monte edilmediğinde izinleri değiştirdiğinizden emin olun - monte ederken bunu yapmak benim için hiç işe yaramadı.

Ek olarak, fstab'ınıza 'kullanıcı' seçeneğini ekleyebilirsiniz, örneğin:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime,user        0       2

Bu aynı zamanda mount komutunun (çağrılması gerekiyorsa) bu birimi bağlamak için kök ayrıcalıklarına ihtiyaç duymayacağı anlamına gelmelidir. Fstab'ınızı değiştirmemeniz sorununuzu çözmenize engel olmaz!


2

Bunu genellikle boş unmounted dizininde yapıyorum

chmod 777 <directory>

O zaman yapmak

chown -R mysql.mysql <directory>

Sonra / etc / fstab dosyasında

<device>    <directory>  ext3   user,defaults 0 2

Sonra kullan

mount -a

/ etc / fstab içinde listelenen tüm dosya sistemlerini bağlamak için.

Bu benim için çalışıyor. Bir şans ver


2

Bunu sadece mountkomut satırının bir parçası olarak yapmak istiyorsanız, -odüğmeyi kullanabilir ve yapabilirsiniz:

mount device mount-point -o uid=foo

Bu, bağlama noktasının sahibini fooroot yerine kullanıcıya değiştirir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.