如何更改挂载点的所有者


44

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

Answers:


43

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

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


32

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

是否也需要更改组


2
uid foo是您要成为安装点所有者的用户名。gid foo是用户组的名称,通常与用户名相同。如有疑问,只需键入ls -l您的主目录并分别检查名字和名字。
Zequez 2012年

10

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


3
不,是relatimelwn.net/Articles/244829
endolith

7
-1是因为uidgid标志仅在支持Linux权限架构的文件系统上起作用-即FAT和NTFS等。参见askubuntu.com/a/34068/329506
mgarciaisaia 2015年

2
是的,我遇到了uid / gid问题-有解决方案吗?
tofutim

这对我的FAT32驱动器有帮助。谢谢。
Naeem Khan

3

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

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

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

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


2

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

chmod 777 <directory>

然后做

chown -R mysql.mysql <directory>

然后在/ etc / fstab中做

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

然后使用

mount -a

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

这对我有用。试试看


2

如果只想在mount命令行中执行此操作,则可以使用该-o开关并执行以下操作:

mount device mount-point -o uid=foo

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.