it-swarm.cn

如何更改挂载点的所有者

我们已经将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以外的用户?

46
Arie K

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

基本思想是需要更改保存数据库的文件系统,而不是挂载点,除非其路径存在某些问题,例如lib只能由root读取。

43
Cristian Ciupitu

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

是否也需要更改组

34
user55650

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

11
Frank Nocke

确保在未挂载文件系统时更改权限-在挂载时执行此操作对我来说从来没有用。

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

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

这还应该意味着mount命令(如果需要调用)将不需要root特权来安装该卷。不更改fstab并不会阻止您解决问题!

4
Tom Werner

我通常在空的卸载目录上执行此操作

chmod 777 <directory>

然后做

chown -R mysql.mysql <directory>

然后在/ etc/fstab中做

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

然后使用

mount -a

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

这对我有用。试试看

2
Saurabh Barjatiya

如果您只想在mount命令行中使用它,则可以使用-o切换并执行:

mount device mount-point -o uid=foo

这样会将安装点的所有者更改为用户foo而不是root。

2
Nasko