zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    数据库连接池-配置 wallfilter问题解决-UncategorizedSQLException
    maven统一配置
    maven依赖排除
    list排序
    spring boot日志配置
    HDU 5281 Senior's Gun (贪心)
    Saving HDU (贪心)
    切割木板 (贪心)
    查找最少标记点 (贪心)
    字典序最小问题 (贪心)
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/15593032.html
Copyright © 2011-2022 走看看