我们已经将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。