Mongodb 如何在具有身份验证的upstart服务中设置mogodb

Mongodb 如何在具有身份验证的upstart服务中设置mogodb,mongodb,ubuntu,startup,upstart,startupscript,Mongodb,Ubuntu,Startup,Upstart,Startupscript,我已经在mongodb v2.6.11中创建了一个超级用户tom,使用用户名和密码,现在我想在ubuntu启动服务中添加这个 在搜索时,我知道我必须编辑下面的文件 这就是我的/etc/init/mongod.conf的外观 尝试1:使用mongo命令行 但是不知道在/etc/init/mongod.conf中更改什么 尝试2:使用/etc/mongod.conf /etc/mongod.conf auth=true port=27017 $sudo mongod--config/etc/mon

我已经在mongodb v2.6.11中创建了一个超级用户tom,使用用户名和密码,现在我想在ubuntu启动服务中添加这个

在搜索时,我知道我必须编辑下面的文件

这就是我的
/etc/init/mongod.conf
的外观

尝试1:使用mongo命令行 但是不知道在
/etc/init/mongod.conf
中更改什么


尝试2:使用/etc/mongod.conf
  • /etc/mongod.conf
  • auth=true

    port=27017

  • $sudo mongod--config/etc/mongod.conf

  • /var/log/mongodb/mongod.log
    触发命令后

    2016-01-20T23:58:41.675+0530****服务器重启*****
    2016-01-20T23:58:41.677+0530[initandlisten]MongoDB启动:pid=3168端口=27017 dbpath=/var/lib/MongoDB 64位主机=vijay
    2016-01-20T23:58:41.677+0530[initandlisten]db版本v2.6.11
    2016-01-20T23:58:41.677+0530[initandlisten]git版本:d00c1735675c457f75a12d530bee85421f0c5548
    2016-01-20T23:58:41.677+0530[initandlisten]构建信息:Linux build4.ny.cbi.10gen.cc 2.6.32-431.3.1.el6.x86#64#1 SMP Fri Jan 3 21:39:27 UTC 2014 x86#64 BOOST#LIB#VERSION=1#49
    2016-01-20T23:58:41.677+0530[initandlisten]分配器:tcmalloc
    2016-01-20T23:58:41.677+0530[initandlisten]选项:{config:“/etc/mongod.conf”,net:{bindIp:“127.0.0.1”,端口:27017},安全性:{authorization:“enabled”},存储:{dbPath:“/var/lib/mongodb”},系统日志:{destination:“file”,logAppend:true,路径:“/var/log/mongodb/mongodb.log”}
    2016-01-20T23:58:41.812+0530[initandlisten]journal dir=/var/lib/mongodb/journal
    2016-01-20T23:58:41.812+0530[initandlisten]恢复:不存在日志文件,不需要恢复
    2016-01-20T23:58:41.934+0530[初始化侦听]正在等待端口27017上的连接
    2016-01-20T23:58:47.746+0530[signalProcessingThread]获得信号2(中断),将在当前命令结束后终止
    2016-01-20T23:58:47.746+0530[信号处理线程]正在退出
    2016-01-20T23:58:47.746+0530[信号处理线程]数据库出口:
    2016-01-20T23:58:47.746+0530[信号处理线程]关闭:将关闭侦听套接字。。。
    2016-01-20T23:58:47.746+0530[信号处理线程]关闭侦听套接字:10
    2016-01-20T23:58:47.746+0530[信号处理线程]关闭侦听套接字:13
    2016-01-20T23:58:47.746+0530[信号处理线程]删除套接字文件:/tmp/mongodb-27017.sock
    2016-01-20T23:58:47.746+0530[信号处理线程]关闭:将刷新诊断日志。。。
    2016-01-20T23:58:47.746+0530[信号处理线程]关闭:将关闭套接字。。。
    2016-01-20T23:58:47.746+0530[信号处理线程]关闭:正在等待fs预分配程序。。。
    2016-01-20T23:58:47.746+0530[信号处理线程]关闭:锁定最终提交。。。
    2016-01-20T23:58:47.746+0530[信号处理线程]关闭:最终提交。。。
    2016-01-20T23:58:47.838+0530[信号处理线程]关闭:关闭所有文件。。。
    2016-01-20T23:58:47.843+0530[信号处理线程]关闭所有文件()已完成
    2016-01-20T23:58:47.843+0530[信号处理线程]日志清理。。。
    2016-01-20T23:58:47.843+0530[信号处理线程]删除日志文件
    2016-01-20T23:58:47.949+0530[信号处理线程]关闭:删除fs锁。。。
    2016-01-20T23:58:47.949+0530[signalProcessingThread]数据库退出:现在真的退出了

  • 但在关闭终端时,mongodb也会关闭

  • 尝试3
  • /etc/mongod.conf
  • auth=true

    port=27017

  • 重新启动计算机

  • /var/log/mongodb/mongod.log
    重新启动计算机后

    2016-01-21T00:40:13.011+0530****服务器重启*****
    2016-01-21T00:40:13.014+0530[initandlisten]MongoDB启动:pid=1012端口=27017 dbpath=/var/lib/MongoDB 64位主机=vijay
    2016-01-21T00:40:13.014+0530[initandlisten]db版本v2.6.11
    2016-01-21T00:40:13.014+0530[initandlisten]git版本:d00c1735675c457f75a12d530bee85421f0c5548
    2016-01-21T00:40:13.014+0530[initandlisten]构建信息:Linux build4.ny.cbi.10gen.cc 2.6.32-431.3.1.el6.x86#64#1 SMP Fri Jan 3 21:39:27 UTC 2014 x86#64 BOOST#LIB#VERSION=1#49
    2016-01-21T00:40:13.014+0530[initandlisten]分配器:tcmalloc
    2016-01-21T00:40:13.014+0530[initandlisten]选项:{config:“/etc/mongod.conf”,net:{bindIp:“127.0.0.1”,端口:27017},安全性:{authorization:“enabled”},存储:{dbPath:“/var/lib/mongodb”},系统日志:{destination:“file”,logAppend:true,路径:“/var/log/mongodb/mongodb.log”}
    2016-01-21T00:40:13.439+0530[initandlisten]initandlisten中出现异常:10309无法创建/打开锁文件:/var/lib/mongodb/mongod.lock错误号:13权限被拒绝mongod实例是否已在运行?正在终止
    2016-01-21T00:40:13.439+0530[initandlisten]数据库出口:
    2016-01-21T00:40:13.439+0530[initandlisten]关闭:将关闭侦听套接字。。。
    2016-01-21T00:40:13.439+0530[初始化侦听]关机:将刷新诊断日志。。。
    2016-01-21T00:40:13.439+0530[initandlisten]关机:要关闭插座。。。
    2016-01-21T00:40:13.439+0530[初始化侦听]关机:等待fs预分配器。。。
    2016-01-21T00:40:13.439+0530[initandlisten]关机:锁定最终提交。。。
    2016-01-21T00:40:13.439+0530[初始化侦听]关闭:最终提交。。。
    2016-01-21T00:40:13.439+0530[初始化侦听]关闭:关闭所有文件。。。
    2016-01-21T00:40:13.439+0530[initandlisten]关闭所有文件()完成
    2016-01-21T00:40:13.439+0530[初始化侦听]关机:删除fs锁。。。
    2016-01-21T00:40:13.439+0530[initandlisten]无法删除fs锁错误号:9错误的文件描述符
    2016-01-21T00:40:13.440+0530[initandlisten]数据库退出:现在真的退出了

  • 观察
    无法创建
    
    pre-start script
        mkdir -p /var/lib/mongodb/
        mkdir -p /var/log/mongodb/
    end script
    
    start on runlevel [2345]
    stop on runlevel [06]
    
    script
      ENABLE_MONGOD="yes"
      CONF=/etc/mongod.conf
      DAEMON=/usr/bin/mongod
      DAEMONUSER=${DAEMONUSER:-mongodb}
    
      if [ -f /etc/default/mongod ]; then . /etc/default/mongod; fi
    
      # Handle NUMA access to CPUs (SERVER-3574)
      # This verifies the existence of numactl as well as testing that the command works
      NUMACTL_ARGS="--interleave=all"
      if which numactl >/dev/null 2>/dev/null && numactl $NUMACTL_ARGS ls / >/dev/null 2>/dev/null
      then/etc/init/mongod.conf
        NUMACTL="$(which numactl) -- $NUMACTL_ARGS"
        DAEMON_OPTS=${DAEMON_OPTS:-"--config $CONF"}
      else
        NUMACTL=""
        DAEMON_OPTS="-- "${DAEMON_OPTS:-"--config $CONF"}
      fi
    
      if [ "x$ENABLE_MONGOD" = "xyes" ]
      then
        exec start-stop-daemon --start --chuid $DAEMONUSER --exec $NUMACTL $DAEMON $DAEMON_OPTS
      fi
    end script
    
    sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb
    
    apt install supervisor
    
    [program:mongo]
    command=/usr/bin/mongod --auth --config /etc/mongod.conf
    autostart=true
    autorestart=true
    user=root
    priority=100
    
    description "service to start mongodb at startup"
    author "plutopunch :)"
    
    start on started mountall
    stop on shutdown
    
    respawn
    respawn limit 99 5
    
    script
         export HOME="/home/admin"
    
         exec sudo mongod --port 27017 --auth --dbpath /var/lib/mongodb
    end script
    
    post-start script
    end script
    
    auth=true
    
    security:
      authorization: enabled
    
    db.createUser(
    {
        user: "tom",
        pwd: "jerry",
        roles: [
                  { role: "userAdminAnyDatabase", db: "admin" },
                  { role: "readWriteAnyDatabase", db: "admin" },
                  { role: "dbAdminAnyDatabase", db: "admin" },
                  { role: "clusterAdmin", db: "admin" }
               ]
    })
    
    MongoDB shell version: 2.6.11
    connecting to: 127.0.0.1:27017/test
    >
    
    sudo chown -R mongodb:mongodb /var/lib/mongodb/.
    sudo chown -R mongodb:mongodb /var/log/mongodb/mongod.log
    sudo /etc/init.d/mongod stop` OR `sudo service mongod stop    
    sudo /etc/init.d/mongod start` OR `sudo service mongod start