You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04重装MongoDB后无法加载旧数据库目录求助

MongoDB重装后旧数据恢复指南(Ubuntu 18.04,MongoDB 5.0.10)

问题根源

日志显示的Permission denied并非mongod.lock文件本身的权限问题,而是以下三个常见原因:

  • 旧数据目录的上级目录权限不足:/home下的用户目录默认仅对所有者开放,mongodb进程无法进入目标路径
  • Ubuntu AppArmor限制:默认规则禁止mongod访问/home下的自定义目录
  • 旧数据文件所有者为普通用户avy,而非mongodb进程用户,导致部分文件读写失败

解决步骤

1. 修复目录与文件权限链

# 给旧数据目录的上级目录(例如/home/avy)添加mongodb用户的进入权限
sudo chmod o+x /home/avy
# 递归将旧数据目录下所有文件的所有者改为mongodb用户及组
sudo chown -R mongodb:mongodb /home/.../mongodatabases

2. 修改AppArmor访问规则

Ubuntu默认的AppArmor会限制mongod的访问路径,需更新配置:

sudo nano /etc/apparmor.d/usr.bin.mongod

在文件中找到/var/lib/mongodb相关的规则块,添加旧数据目录的权限配置:

/home/.../mongodatabases/ r,
/home/.../mongodatabases/** rwk,

保存退出后重载AppArmor规则:

sudo systemctl reload apparmor

3. 清理锁文件并重启服务

sudo systemctl stop mongod
# 删除旧目录下的无效锁文件
sudo rm /home/.../mongodatabases/mongod.lock
# 启动mongod服务
sudo systemctl start mongod

4. 验证恢复结果

# 检查服务运行状态
sudo systemctl status mongod
# 进入MongoDB控制台查看数据
mongo
# 列出所有数据库验证恢复情况
show dbs

内容的提问来源于stack exchange,提问作者AvyWam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:48:09