Risolvere il problema Failed to unlink socket in MongoDB
Ho installato MongoDB su varie distro, e più volte su Debian 10.
Oggi, però, su una nuova installazione riscontravo sempre questo:
# systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2020-04-14 09:58:02 CEST; 1s ago
Docs: https://docs.mongodb.org/manual
Process: 3818 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=14)
Main PID: 3818 (code=exited, status=14)
Apr 14 09:58:02 matteoferrone systemd[1]: Started MongoDB Database Server.
Apr 14 09:58:02 matteoferrone systemd[1]: mongod.service: Main process exited, code=exited, status=14/n/a
Apr 14 09:58:02 matteoferrone systemd[1]: mongod.service: Failed with result 'exit-code'.
Andando a vedere il log vedevo questo:
2020-04-14T09:46:16.177+0200 I CONTROL [main] ***** SERVER RESTARTED *****
2020-04-14T09:46:16.184+0200 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-04-14T09:46:16.218+0200 W ASIO [main] No TransportLayer configured during NetworkInterface startup
2020-04-14T09:46:16.219+0200 I CONTROL [initandlisten] MongoDB starting : pid=1506 port=27017 dbpath=/var/lib/mongodb 64-bit host=matteoferrone
2020-04-14T09:46:16.219+0200 I CONTROL [initandlisten] db version v4.2.5
2020-04-14T09:46:16.219+0200 I CONTROL [initandlisten] git version: 2261279b51ea13df08ae708ff278f0679c59dc32
2020-04-14T09:46:16.219+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
2020-04-14T09:46:16.219+0200 I CONTROL [initandlisten] allocator: tcmalloc
2020-04-14T09:46:16.219+0200 I CONTROL [initandlisten] modules: none
2020-04-14T09:46:16.219+0200 I CONTROL [initandlisten] build environment:
2020-04-14T09:46:16.219+0200 I CONTROL [initandlisten] distmod: debian10
2020-04-14T09:46:16.220+0200 I CONTROL [initandlisten] distarch: x86_64
2020-04-14T09:46:16.220+0200 I CONTROL [initandlisten] target_arch: x86_64
2020-04-14T09:46:16.220+0200 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { timeZoneInfo: "/usr/share/zoneinfo" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2020-04-14T09:46:16.220+0200 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted
2020-04-14T09:46:16.220+0200 F - [initandlisten] Fatal Assertion 40486 at src/mongo/transport/transport_layer_asio.cpp 684
2020-04-14T09:46:16.220+0200 F - [initandlisten]
***aborting after fassert() failure
Ho poi scoperto che il problema erano i permessi di scrittura sulla cartella tmp.
Ho quindi eseguito questi comandi:
# cd /tmp
# ls *.sock
# chown mongodb:mongodb VOSTRO_FILE.sock
# systemctl start mongod
# systemctl status mongod
Giusto per essere sicuri, accertatevi di avere i giusti permessi anche qui:
# ls -l /var/lib/
drwxr-xr-x 4 mongodb mongodb 4096 Apr 14 10:00 mongodb
Enjoy!
database mongodb
Commentami!