Ubuntu 20.04启动带访问控制的MongoDB报错只读目录无法创建锁文件
报错原因
该报错是因为运行mongod命令的用户,没有MongoDB数据目录/var/lib/mongodb的读写权限,无法创建运行必需的锁文件。
Ubuntu系统中MongoDB默认以mongodb系统用户身份运行,手动用普通用户/root用户执行启动命令时,就会出现权限不匹配的问题。
解决方案
按以下步骤操作即可修复:
- 先停止所有运行中的MongoDB进程,避免目录被占用
sudo systemctl stop mongod
- 递归修改数据目录的所属用户和用户组为MongoDB默认运行身份
mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb
- 修正目录权限,确保运行用户有完整读写权限
sudo chmod -R 755 /var/lib/mongodb
- 选择合适的方式启动带访问控制的MongoDB实例:
- 临时手动启动:切换到
mongodb用户执行启动命令
sudo -u mongodb mongod --auth --port 27017 --dbpath /var/lib/mongodb- 永久配置(更推荐):修改MongoDB默认配置文件开启访问控制,用系统服务管理进程
编辑配置文件/etc/mongod.conf,找到security段修改为以下内容:
保存后重启MongoDB服务即可生效:security: authorization: enabledsudo systemctl restart mongod - 临时手动启动:切换到
- 验证启动状态
sudo systemctl status mongod
注意:禁止直接用root用户执行
mongod命令,会导致数据目录权限被篡改为root所有,后续常规启动都会触发权限错误。
内容的提问来源于stack exchange,提问作者adityabhuvanraj
相关产品推荐
相关产品推荐

