2018-04-12

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)

然后在查看(/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)。

解决方案

方案一:

(chown -R mongodb:mongodb /var/lib/mongodb )将数据文件权限改回mongodb

(chown -R mongodb:mongodb /var/log/mongodb )将日志文件权限改回mongodb

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

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

修改(/lib/systemd/system/mongod.service)的user为root,Group为root,

然后再次启动 service mongod start


参考:

https://stackoverflow.com/questions/43137250/mongodb-3-4-3-permission-denied-wiredtiger-kv-engine-cpp-267-error-with-ubuntu-1

你可能感兴趣的:(2018-04-12)