MongoDB 运行 service mongod start 后服务没有启动成功

问题描述

查看日志(/var/log/mongodb/mongodb.log)有如下信息

Wiredtiger error(13).....file:WiredTiger.wt,connection:/var/lib/mongodb/WiredTiger.turtle:handle-open:open:Permission denied

问题出现原因

  • 1、权限问题。

service mongod start启动时使用的用户默认为mongodb,具体可查看系统文件(/lib/systemd/system/mongod.service

其中含有

[Service]
User=mongodb
Group=mongodb

然后在查看(/var/lib/mongodb/WiredTiger.turtle)的文件权限,使用命令

cd /var/lib
ls -l /var/lib/mongodb

查看权限发现 WiredTiger.turtle以及其他若干个文件的权限为 root

所以由于mogodb用户的权限无法访问root权限下的文件造成服务启动失败。

但是为什么这几个文件的权限会变为root呢?

我的原因是曾经使用过root用户操作过数据库(在rootx下使用mongod命令等),导致文件的权限变化从而无法再使用(service mongod start)。

解决方案

方案一:

# storage.dbPath
chown -R mongodb:mongodb /var/lib/mongodb

# systemLog.path
sudo chown -R mongodb:mongodb /var/log/mongodb

将数据文件权限改回mongodb

然后再次启动 service mongo start就可以了,但是如果在以root用户去操作数据库仍会出现上述问题。同时官方极不推荐在root用户下使用数据库。

方案二(从安全性考虑不推荐):

修改

/lib/systemd/system/mongod.service

中的userroot,Grouproot

然后再次启动 service mongod start

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值