我們已將 mysql 資料目錄移至另一個磁碟,因此現在/var/lib/mysql
只是另一個分割區的掛載點。我們將目錄的所有者設定/var/lib/mysql
為mysql.mysql
.
但每次我們掛載分割時,所有權都會改為root.root
.因此,我們無法建立額外的 MySQL 資料庫。
我們的 fstab 條目:
/dev/mapper/db-db /var/lib/mysql ext3 relatime 0 2
如何將掛載點的擁有者更改為root以外的使用者?
答案1
當檔案系統未掛載時,您需要變更已掛載檔案系統的權限,而不是掛載點的權限。那麼mount /var/lib/mysql
那麼chown mysql.mysql /var/lib/mysql
。這將更改 MySQL DB 檔案系統根的權限。
基本概念是需要更改保存資料庫的檔案系統,而不是掛載點,除非其路徑有一些問題,例如lib
只能由 root 讀取。
答案2
也
mount device mount-point -o uid=foo -o gid=foo
如果組也需要改變
答案3
重要免責聲明(從評論中了解到):
uid 和 gid 標誌僅適用於不支援 Linux 權限模式的檔案系統 - 即 FAT 和 NTFS 等
因此,這不是 OP 的正確答案,但對其他人有幫助
加入 uid 和 gid,如下所示:
/dev/mapper/db-db /var/lib/mysql ext3 relatime,rw,exec,uid=frank,gid=www-group 0 2
您可以使用實際的使用者/群組名稱(注意空格)或數字 uid、gid 值。我添加了 rw 和 exec,這可能會進一步幫助您防止存取問題(假設您位於開發系統上,而不是生產伺服器上)。
PS:要獲得更多存取權限(如果需要),請新增“,dir_mode=0777,file_mode=0777”
答案4
我通常在空的未安裝目錄上執行此操作
chmod 777 <directory>
然後做
chown -R mysql.mysql <directory>
然後在 /etc/fstab 中執行
<device> <directory> ext3 user,defaults 0 2
然後使用
mount -a
掛載 /etc/fstab 中列出的所有檔案系統。
這對我有用。試一試