当我的根目录已满时,我已将我的 mongodb 数据库路径移动到不同的挂载位置。我将它移动到一个更大的分区,该分区安装在我的主目录下(这也是与根目录分开的分区)。
首先我停止了 mongod,然后我跑了
cp -ra /var/lib/mongodb $HOME/archive/mongodb
复制旧的 dbpath,同时保留权限和时间戳以及其他所有内容。
我检查了 2 个目录,一切都一样,组是守护进程,用户是 mongodb。
然而,由于某种原因,每次尝试启动 mongo 时,我都会在 mongodb.log 中收到以下权限错误:
sudo systemctl start mongodb
Fri Nov 8 14:15:36.412 [initandlisten] options: { bind_ip: "10.10.11.101", config: "/etc/mongodb.conf", dbpath: "/home/dave/archive/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongod.log", quiet: true, rest: "true" }
Fri Nov 8 14:15:36.412 [initandlisten] exception in initAndListen std::exception: boost::filesystem::status: Permission denied: "/home/dave/archive/mongodb", terminating
这是权限的输出:
ls -alt $HOME/archive/mongodb
drwxr-xr-x 4 mongodb daemon 4096 Nov 8 13:26 .
drwxrwxr-x 14 dave users 4096 Nov 8 12:57 ..
drwxr-xr-x 2 mongodb daemon 4096 Nov 8 12:29 journal
我也跑chown -R
了好几次,只是为了确定。
我什至将 mongodb 用户添加到用户组中,因为存档目录的组是用户,所以挂起的情况。仍然无法正常工作。
会不会是某种 fstab 问题?
UUID=88356ad7-9b85-402e-a0ab-86547fae9bcd /home ext4 defaults,user_xattr 0 1
UUID=db4a13df-62df-46eb-8c0d-809d5f2c312f /home/dave/archive ext4 defaults,user_xattr 0 1
感谢您的任何想法。
编辑:我最终使用了另一个驱动器并将其安装到 /mnt/data 的新定义目录中,现在一切正常,但我仍然很想知道为什么上述方法不起作用,因为我以相同的方式设置,使用cp -ra
.