Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MongoDB can not start by the command `service mongod start`

Tags:

mongodb

when i run the command sudo service mongod start the MongoDB cannot start and when i run the service mongod status it shows it has not been started, and the log shows:

2018-07-05T14:32:03.595+0800 I CONTROL  [main] ***** SERVER RESTARTED *****
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten] MongoDB starting : pid=15656 port=27017 dbpath=/var/lib/mongodb 64-bit host=iZbp1ik57sceo226yjpivxZ
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten] db version v4.0.0-rc7
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten] git version: 7230641bb09b1ceb04c3135cf83a5044c4838906
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten] modules: none
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten] build environment:
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten]     distmod: ubuntu1604
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten]     distarch: x86_64
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2018-07-05T14:32:03.605+0800 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "0.0.0.0", port: 27017 }, processManagement: { timeZoneInfo: "/usr/share/zoneinfo" }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2018-07-05T14:32:03.605+0800 I STORAGE  [initandlisten] Detected data files in /var/lib/mongodb created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2018-07-05T14:32:03.605+0800 I STORAGE  [initandlisten]
2018-07-05T14:32:03.605+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2018-07-05T14:32:03.605+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2018-07-05T14:32:03.605+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=488M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),
2018-07-05T14:32:04.204+0800 E STORAGE  [initandlisten] WiredTiger error (13) [1530772324:204155][15656:0x7fb5cb734a00], wiredtiger_open: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1530772324:204155][15656:0x7fb5cb734a00], wiredtiger_open: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied
2018-07-05T14:32:04.204+0800 E STORAGE  [initandlisten] WiredTiger error (13) [1530772324:204458][15656:0x7fb5cb734a00], wiredtiger_open: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1530772324:204458][15656:0x7fb5cb734a00], wiredtiger_open: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied
2018-07-05T14:32:04.204+0800 E STORAGE  [initandlisten] WiredTiger error (13) [1530772324:204610][15656:0x7fb5cb734a00], wiredtiger_open: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1530772324:204610][15656:0x7fb5cb734a00], wiredtiger_open: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied
2018-07-05T14:32:04.204+0800 F STORAGE  [initandlisten] Failed to start up WiredTiger under any compatibility version.
2018-07-05T14:32:04.204+0800 F STORAGE  [initandlisten] 13: Permission denied
2018-07-05T14:32:04.204+0800 F -        [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 194
2018-07-05T14:32:04.204+0800 F -        [initandlisten]
***aborting after fassert() failure

but when i tried mongod --auth -f /etc/mongod.conf the server can start and when visit the log file it shows that:

2018-07-05T14:35:34.228+0800 I CONTROL  [main] ***** SERVER RESTARTED *****
2018-07-05T14:35:34.239+0800 I CONTROL  [initandlisten] MongoDB starting : pid=15665 port=27017 dbpath=/var/lib/mongodb 64-bit host=iZbp1ik57sceo226yjpivxZ
2018-07-05T14:35:34.239+0800 I CONTROL  [initandlisten] db version v4.0.0-rc7
2018-07-05T14:35:34.239+0800 I CONTROL  [initandlisten] git version: 7230641bb09b1ceb04c3135cf83a5044c4838906
2018-07-05T14:35:34.240+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2018-07-05T14:35:34.240+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2018-07-05T14:35:34.240+0800 I CONTROL  [initandlisten] modules: none
2018-07-05T14:35:34.240+0800 I CONTROL  [initandlisten] build environment:
2018-07-05T14:35:34.240+0800 I CONTROL  [initandlisten]     distmod: ubuntu1604
2018-07-05T14:35:34.240+0800 I CONTROL  [initandlisten]     distarch: x86_64
2018-07-05T14:35:34.240+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2018-07-05T14:35:34.240+0800 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "0.0.0.0", port: 27017 }, processManagement: { timeZoneInfo: "/usr/share/zoneinfo" }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2018-07-05T14:35:34.240+0800 I STORAGE  [initandlisten] Detected data files in /var/lib/mongodb created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2018-07-05T14:35:34.240+0800 I STORAGE  [initandlisten]
2018-07-05T14:35:34.240+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2018-07-05T14:35:34.240+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2018-07-05T14:35:34.240+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=488M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress),
2018-07-05T14:35:35.005+0800 I STORAGE  [initandlisten] WiredTiger message [1530772535:5560][15665:0x7f0ab9512a00], txn-recover: Main recovery loop: starting at 18/8960
2018-07-05T14:35:35.113+0800 I STORAGE  [initandlisten] WiredTiger message [1530772535:113878][15665:0x7f0ab9512a00], txn-recover: Recovering log 18 through 19
2018-07-05T14:35:35.179+0800 I STORAGE  [initandlisten] WiredTiger message [1530772535:179582][15665:0x7f0ab9512a00], txn-recover: Recovering log 19 through 19
2018-07-05T14:35:35.248+0800 I STORAGE  [initandlisten] WiredTiger message [1530772535:248647][15665:0x7f0ab9512a00], txn-recover: Set global recovery timestamp: 0
2018-07-05T14:35:35.283+0800 I RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
2018-07-05T14:35:35.311+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-07-05T14:35:35.311+0800 I CONTROL  [initandlisten]
2018-07-05T14:35:35.312+0800 I CONTROL  [initandlisten]
2018-07-05T14:35:35.312+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-07-05T14:35:35.312+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-07-05T14:35:35.312+0800 I CONTROL  [initandlisten]
2018-07-05T14:35:35.312+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 7856 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.
2018-07-05T14:35:35.312+0800 I CONTROL  [initandlisten]
2018-07-05T14:35:35.336+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data'
2018-07-05T14:35:35.337+0800 I NETWORK  [initandlisten] waiting for connections on port 27017

and the whole config file is as below:

# mongod.conf
# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
journal:
  enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:
security:
  authorization: enabled

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

So, what is the matter with it? why the first method can not run it but the second method can start it?

like image 293
Jochen Shi Avatar asked Jul 05 '18 06:07

Jochen Shi


People also ask

Why MongoDB server is not starting?

We found that the reason for this error was the dbpath variable in /etc/mongodb. conf. Previously, the default value for dbpath was /data/db. The upstart job mongodb(which comes with mongodb-10gen package) invokes the mongod with –config /etc/mongodb.

How do I start MongoDB from command prompt?

To open up the MongoDB shell, run the mongo command from your server prompt. By default, the mongo command opens a shell connected to a locally-installed MongoDB instance running on port 27017 . Try running the mongo command with no additional parameters: mongo.

How do I start and stop mongod?

One liners to start or stop mongodb service using command line; To start the service use: NET START MONGODB. To stop the service use: NET STOP MONGODB.


2 Answers

According to @Markus W Mahlberg, and after run these command, the problem has been solved.

[sudo] chown mongodb.mongodb -R /var/lib/mongodb
like image 71
Jochen Shi Avatar answered Oct 11 '22 03:10

Jochen Shi


If you ran the command mongod as root on the server while testing your configuration file, as in:

$ mongod -f /etc/mongod.conf

The mongo server will generate the mongo.lock file and the WiredTiger.lock files and further files in the mongodb folder with root:root ownership as in:

-rw-------  1 mongodb mongodb      36864 Nov 25 12:03 index-95--8062076833940689665.wt
-rw-------  1 mongodb mongodb      45056 Nov 25 12:03 index-96--8062076833940689665.wt
-rw-------  1 mongodb mongodb      36864 Nov 25 12:03 index-99--8062076833940689665.wt
drwx------  2 mongodb mongodb       4096 Nov 25 15:23 journal/
-rw-------  1 mongodb mongodb      45056 Nov 25 15:32 _mdb_catalog.wt
-rw-------  1 root    root             0 Nov 25 15:32 mongod.lock
-rw-------  1 mongodb mongodb      36864 Nov 25 15:32 sizeStorer.wt
-rw-------  1 mongodb mongodb        114 Oct 17 17:41 storage.bson
-rw-------  1 mongodb mongodb         44 Oct 17 17:41 WiredTiger
-rw-------  1 mongodb mongodb       4096 Nov 25 15:32 WiredTigerLAS.wt
-rw-------  1 root    root            21 Nov 25 15:22 WiredTiger.lock
-rw-------  1 mongodb mongodb       1201 Nov 25 15:32 WiredTiger.turtle
-rw-------  1 mongodb mongodb     188416 Nov 25 15:32 WiredTiger.wt

The service is most likely configured to run mongod with the mongodb user. which will not have permission to remove, or overwrite the WiredTiger.lock nor the mongod.lock or any other file that were created when mongod was running using the root user. In the case above the /var/lib/mongodb/WiredTiger.turtle

The solution is to reset the ownership of all the files in the folder in the case above the /var/lib/mongodb/ folder to the mongodb user:

$ sudo chown -R mongodb:mongodb /var/lib/mongodb/

That should solve the issue.

like image 26
Ouss Avatar answered Oct 11 '22 03:10

Ouss