1

ユーザー名パスワードを使用してmongodb v2.6.11でスーパーユーザートムを作成しましたが、これをubuntuスタートアップサービスに追加したいと思います

検索すると、以下のファイルを編集する必要があることがわかりました

これが私の/etc/init/mongod.conf見た目です

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

ATTEMPT 1:mongoコマンドラインを使用

sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb

しかし、何を変更すればよいかわかりませんか/etc/init/mongod.conf


ATTEMPT 2 : /etc/mongod.conf を使用して

  1. で変更を行いました/etc/mongod.conf

auth = true

port = 27017

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

  2. /var/log/mongodb/mongod.logコマンド発射後

    2016-01-20T23:58:41.675+0530 ***** SERVER RESTARTED ***** 2016-01-20T23:58:41.677+0530 [initandlisten] MongoDB starting : pid=3168 port=27017 dbpath=/var/lib/mongodb 64-bit host=vijay 2016-01-20T23:58:41.677+0530 [initandlisten] db version v2.6.11 2016-01-20T23:58:41.677+0530 [initandlisten] git version: d00c1735675c457f75a12d530bee85421f0c5548 2016-01-20T23:58:41.677+0530 [initandlisten] build info: 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] allocator: tcmalloc 2016-01-20T23:58:41.677+0530 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongodb" }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 2016-01-20T23:58:41.812+0530 [initandlisten] journal dir=/var/lib/mongodb/journal 2016-01-20T23:58:41.812+0530 [initandlisten] recover : no journal files present, no recovery needed 2016-01-20T23:58:41.934+0530 [initandlisten] waiting for connections on port 27017 2016-01-20T23:58:47.746+0530 [signalProcessingThread] got signal 2 (Interrupt), will terminate after current cmd ends 2016-01-20T23:58:47.746+0530 [signalProcessingThread] now exiting 2016-01-20T23:58:47.746+0530 [signalProcessingThread] dbexit: 2016-01-20T23:58:47.746+0530 [signalProcessingThread] shutdown: going to close listening sockets... 2016-01-20T23:58:47.746+0530 [signalProcessingThread] closing listening socket: 10 2016-01-20T23:58:47.746+0530 [signalProcessingThread] closing listening socket: 13 2016-01-20T23:58:47.746+0530 [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock 2016-01-20T23:58:47.746+0530 [signalProcessingThread] shutdown: going to flush diaglog... 2016-01-20T23:58:47.746+0530 [signalProcessingThread] shutdown: going to close sockets... 2016-01-20T23:58:47.746+0530 [signalProcessingThread] shutdown: waiting for fs preallocator... 2016-01-20T23:58:47.746+0530 [signalProcessingThread] shutdown: lock for final commit... 2016-01-20T23:58:47.746+0530 [signalProcessingThread] shutdown: final commit... 2016-01-20T23:58:47.838+0530 [signalProcessingThread] shutdown: closing all files... 2016-01-20T23:58:47.843+0530 [signalProcessingThread] closeAllFiles() finished 2016-01-20T23:58:47.843+0530 [signalProcessingThread] journalCleanup... 2016-01-20T23:58:47.843+0530 [signalProcessingThread] removeJournalFiles 2016-01-20T23:58:47.949+0530 [signalProcessingThread] shutdown: removing fs lock... 2016-01-20T23:58:47.949+0530 [signalProcessingThread] dbexit: really exiting now

  3. しかし、端末を閉じるとmongodbも閉じます

試行 3

  1. で変更を行いました/etc/mongod.conf

auth = true

port = 27017

  1. コンピューターを再起動

  2. /var/log/mongodb/mongod.logコンピュータの再起動

    2016-01-21T00:40:13.011+0530 ***** SERVER RESTARTED ***** 2016-01-21T00:40:13.014+0530 [initandlisten] MongoDB starting : pid=1012 port=27017 dbpath=/var/lib/mongodb 64-bit host=vijay 2016-01-21T00:40:13.014+0530 [initandlisten] db version v2.6.11 2016-01-21T00:40:13.014+0530 [initandlisten] git version: d00c1735675c457f75a12d530bee85421f0c5548 2016-01-21T00:40:13.014+0530 [initandlisten] build info: 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] allocator: tcmalloc 2016-01-21T00:40:13.014+0530 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongodb" }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 2016-01-21T00:40:13.439+0530 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating 2016-01-21T00:40:13.439+0530 [initandlisten] dbexit: 2016-01-21T00:40:13.439+0530 [initandlisten] shutdown: going to close listening sockets... 2016-01-21T00:40:13.439+0530 [initandlisten] shutdown: going to flush diaglog... 2016-01-21T00:40:13.439+0530 [initandlisten] shutdown: going to close sockets... 2016-01-21T00:40:13.439+0530 [initandlisten] shutdown: waiting for fs preallocator... 2016-01-21T00:40:13.439+0530 [initandlisten] shutdown: lock for final commit... 2016-01-21T00:40:13.439+0530 [initandlisten] shutdown: final commit... 2016-01-21T00:40:13.439+0530 [initandlisten] shutdown: closing all files... 2016-01-21T00:40:13.439+0530 [initandlisten] closeAllFiles() finished 2016-01-21T00:40:13.439+0530 [initandlisten] shutdown: removing fs lock... 2016-01-21T00:40:13.439+0530 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor 2016-01-21T00:40:13.440+0530 [initandlisten] dbexit: really exiting now

  3. 観察:Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating ログにこのエラーが見つかりました。それが原因で mongodb が終了するかどうかわかりません。コンピューターの起動時にmongo が停止する場合は、許可を設定する方法を教えてください。

4

4 に答える 4

2

起動ファイルをいじる必要はまったくありません (自分が何をしているのかを正確に理解していない限り、これを行うべきではありません)、MongoDB を管理するための追加のソフトウェアをインストールする必要はありません。

MongoDB の config file options に関する広範なドキュメントを読むことをお勧めします。

あなたがする必要がある唯一のことは、設定することです

auth=true

レガシー構成ファイルまたは

security:
  authorization: enabled

の YAML 構成ファイル用/etc/mongod.conf

于 2016-01-18T20:59:52.123 に答える
1

@Markus W mahalberg詳細な手順で回答を広げてくれてありがとう

認証を使用して起動時にmongoを設定するMongodbの正しい方法


手順:

1 : sudo apt-get install mongodb-org -新しいターミナルで

2 :sudo mongod --port 27017 --dbpath /var/lib/mongodb

3 : mongo --port 27017 - 新しいターミナルで

4 :use admin

5 :スーパーユーザーをセットアップしましょう

db.createUser(
{
    user: "tom",
    pwd: "jerry",
    roles: [
              { role: "userAdminAnyDatabase", db: "admin" },
              { role: "readWriteAnyDatabase", db: "admin" },
              { role: "dbAdminAnyDatabase", db: "admin" },
              { role: "clusterAdmin", db: "admin" }
           ]
})

6 : Do Changes InのStartup サービス/etc/mongod.confを構成して 設定します

auth = true

port = 27017

7 :sudo /etc/init.d/mongod stopまたはsudo service mongod stop -新しいターミナルで

8 :sudo /etc/init.d/mongod startまたはsudo service mongod start

9 : restart your pcPC を再起動する前に、このファイルを空にして/var/log/mongodb/mongod.log保存してください

次に、起動時に実行されている認証mongodbの2つのことを確認しましょう

1 :認証設定を確認する

mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin" - 新しいターミナルで

:このステップは最も重要なステップです。

次のような端末に出力が表示されます

MongoDB shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
>

2 : mongodb が起動時に実行されているかどうかを確認します

mongod起動時にmongodが開始されているはずなので、実行せずに以下のコマンドを実行します

mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin" - 新しいターミナルで

起動しない場合は、このファイル '/var/log/mongodb/mongod.log' を開きます。

エラーログが含まれている場合:

Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

次に、これらの権限を適用して再起動し、再度確認します

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 

上記のエラー ログが含まれていない場合は、起動時に mongodb が正常に起動されているはずです。

于 2016-01-27T12:12:23.273 に答える
0

1 : 行きました -> $cd /etc/init/

2 : vi または nano エディターを介しmyservice.confて以下のコードでファイルを作成します

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

3 : パソコンを再起動する

http://upstart.ubuntu.com/cookbook/

于 2016-01-18T20:09:53.240 に答える