我们已经将 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以外的用户?
您需要更改已挂载文件系统的权限,而不是在未挂载文件系统时更改挂载点的权限。那么。
mount /var/lib/mysql
_chown mysql.mysql /var/lib/mysql
这将更改 MySQL DB 文件系统的根目录的权限。基本思想是需要更改保存数据库的文件系统,而不是挂载点,除非它的路径有问题,例如
lib
只能由 root 读取。还
如果组也需要更改
重要免责声明(从评论中得知):
因此,这不是 OP 的正确答案,但对其他人有帮助
像这样添加 uid 和 gid:
您可以使用实际的用户名/组名(注意空格)或数字 uid、gid 值。我添加了 rw 和 exec,这可能会进一步帮助您防止访问问题(假设您在开发系统上,而不是生产服务器上)。
PS:要获得更多访问权限(如果需要),请添加“,dir_mode=0777,file_mode=0777”
确保在未挂载文件系统时更改权限 - 在挂载时执行此操作对我来说从来没有用过。
此外,您可以在 fstab 中添加“用户”选项,例如:
这也应该意味着挂载命令(如果需要调用)不需要 root 权限来挂载该卷。不改变你的 fstab 不会阻止你解决你的问题!
我通常在空的未挂载目录上执行此操作
然后做
然后在 /etc/fstab 中
然后使用
挂载 /etc/fstab 中列出的所有文件系统。
这对我有用。试试看
如果您只想将其作为
mount
命令行的一部分,您可以使用-o
开关并执行以下操作:这会将挂载点的所有者更改为用户
foo
而不是 root。最近我陷入了类似的问题。这就是我所做的:
在 /etc/fstab 中:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx /mnt/minimal_dev_env ext4 错误=remount-ro 0 2
在我的 Ubuntu 剪贴板扩展中:
添加了以下组合命令:
sudo mount -a && sudo chown -R mysql:mysql /mnt/minimal_dev_env/mysql && sudo systemctl restart mysql && ls -la /mnt/minimal_dev_env/mysql
用于安装。和,
sudo systemctl stop mysql && sudo umount /mnt/minimal_dev_env/ && ls -la /mnt/minimal_dev_env/
用于卸载。