我们已经将 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 中列出的所有文件系统。
这对我来说很有效。试试看