Problem
My mongo service does not start anymore:
root@machine ~ # service mongod start
root@machine ~ # service mongod status
● mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2017-08-15 12:03:51 CEST; 2s ago
Docs: https://docs.mongodb.org/manual
Process: 26942 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=100)
Main PID: 26942 (code=exited, status=100)
Aug 15 12:03:50 machine systemd[1]: Started High-performance, schema-free document-oriented database.
Aug 15 12:03:51 machine systemd[1]: mongod.service: Main process exited, code=exited, status=100/n/a
Aug 15 12:03:51 machine systemd[1]: mongod.service: Unit entered failed state.
Aug 15 12:03:51 machine systemd[1]: mongod.service: Failed with result 'exit-code'.
Where exit code 100 is blurry defined as:
Returned by mongod when the process throws an uncaught exception.
What I did
First, I have installed my mongodb (3.4.7) on Ubuntu 16.04.2 LTS via the official guide.
Starting and stopping the service worked fine. So I continued to enable authentication (again via the official guide).
Then I added the service to be able to run on server startup.
root@machine ~ # systemctl enable mongod.service
mongod.conf
I also edited my config file, which is passed a yaml linter:
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine: mmapv1
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
#processManagement:
security:
authorization: enabled
The ownership of the file is
root@machine ~ # ls -la /etc/ | grep mongo
-rw-r--r-- 1 root root 599 Aug 15 11:42 mongod.conf
DbPath
I know there are issues with the dbpath so this is what /var/lib/mongodb
has in terms of ownership:
root@ machine ~ # ls -la /var/lib/ | grep mongo
drwxr-xr-x 4 mongodb mongodb 4096 Aug 15 11:54 mongodb
Service List
When listing all services via service --status-all
there is no entry for any mongo related service.
Somebody has a clue what could cause the issue?
UPDATE
As suggested I ran the following command (with a slight modification):
root@machine ~ /usr/bin/mongod --verbose --config /etc/mongod.conf &
[1] 28495
When I get it right, this is a direct execute of the binary. This allows me now to at least login into mongo shell:
root@machine ~ # mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
>
However, the service status is still remaining failed with exit code 100.
UPDATE UPDATE
When typing root@machine ~ # /usr/bin/mongod --verbose
I receive the following error:
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] MongoDB starting : pid=28642 port=27017 dbpath=/data/db 64-bit host=machine
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] db version v3.4.7
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] git version: cf38c1b8a0a8dca4a11737581beafef4fe120bcd
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] allocator: tcmalloc
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] modules: none
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] build environment:
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] distmod: ubuntu1604
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] distarch: x86_64
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] target_arch: x86_64
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] options: { systemLog: { verbosity: 1 } }
2017-08-15T13:45:40.973+0200 D - [initandlisten] User Assertion: 29:Data directory /data/db not found. src/mongo/db/service_context_d.cpp 98
2017-08-15T13:45:40.973+0200 I STORAGE [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2017-08-15T13:45:40.973+0200 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2017-08-15T13:45:40.973+0200 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] now exiting
2017-08-15T13:45:40.973+0200 I CONTROL [initandlisten] shutting down with code:100
mongo is not recognized as an internal or external command This error usually occurs because the system can not find the executable that you are asking to launch so to launch the file you have to provide the full path and after that, it will run without any issues.
To start the service use: NET START MONGODB. To stop the service use: NET STOP MONGODB.
Manually stop the MongoDB service by using one of the following methods: Run the /etc/init. d/mongodnetbrain stop command at the command line. Run the service mongodnetbrain stop command at the command line.
You may still have some problems with the permissions in your data directory. Especially if you have run mongod from the terminal to start with.
I find that the data files are created under root not the mongodb user when you run from the terminal. To fix ..
sudo chown -R mongodb:mongodb /var/lib/mongodb/*
rm /var/lib/mongodb/mongod.lock
systemctl restart mongod
systemctl status mongod
Try this!
Remove the mongod.lock
file under 'dbath'
, and it should start without issues.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With