如何更改挂载点的所有者

我们已经将mysql数据目录移动到另一个磁盘,所以现在/var/lib/mysql只是一个挂载点到另一个分区。 我们将/var/lib/mysql目录的所有者设置为mysql.mysql

但是每次我们挂载分区时,所有权都会变成root.root 。 因此,我们无法创build额外的MySQL数据库。

我们的fstab条目:

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

如何将挂载点的所有者更改为root以外的用户?

当文件系统未安装时,您需要更改已装载文件系统的权限,而不是装入点的权限。 因此, mount /var/lib/mysql然后chown mysql.mysql /var/lib/mysql 。 这将改变MySQL DB文件系统根目录的权限。

基本的想法是,持有数据库的文件系统需要改变,而不是挂载点,除非它的path有一些问题,例如lib只能被root读取。

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

如果团体也需要改变

像这样添加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”

确保在文件系统未挂载时更改权限 – 挂载时从未执行过。

另外,您可以将“user”选项添加到您的fstab中,例如:

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

这也意味着mount命令(如果需要调用的话)将不需要root权限来挂载该卷。 不改变你的fstab不会阻止你修复你的问题!

我通常在空的未安装目录上执行此操作

 chmod 777 <directory> 

然后呢

 chown -R mysql.mysql <directory> 

然后在/ etc / fstab中做

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

然后使用

 mount -a 

挂载/ etc / fstab中列出的所有文件系统。

这对我有用。 试一试

如果您只想将其作为mount命令行的一部分来执行,则可以使用-o开关并执行以下操作:

 mount device mount-point -o uid=foo 

这将会将挂载点的所有者更改为用户foo而不是root。