One day, when I try to start MongoDB, I get the following error ...
$ mongo
MongoDB shell version v4.2.10
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2020-10-23T16:57:38.500+0000 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:353:17
@(connect):2:6
2020-10-23T16:57:38.501+0000 F - [main] exception: connect failed
2020-10-23T16:57:38.501+0000 E - [main] exiting with code 1
Apparently, I can't connect to the Mongo server! Seems to be an error
I haven't done anything strange, so when I asked Google Sensei if there were any people who were having trouble with the same content, it was discovered that there were similar people.
However, most of the articles use the brew services
command, which was a painful reality for me using Ubuntu.
(Ubuntu also has Linux Brew, but it seems that brew services are not yet supported orz)
So when I asked Google Sensei again to rely on overseas sites, I found a site with a solution. This time I would like to write an article with reference to that
First, there seems to be a command called mongod --repair
, so try running it.
$ sudo mongod --repair
2020-10-23T17:24:42.552+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-10-23T17:24:42.553+0000 W ASIO [main] No TransportLayer configured during NetworkInterface startup
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] MongoDB starting : pid=15466 port=27017 dbpath=/data/db 64-bit host=sugimoto-1
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] db version v4.2.10
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] git version: 88276238fa97b47c0ef14362b343c5317ecbd739
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] allocator: tcmalloc
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] modules: none
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] build environment:
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] distmod: ubuntu1804
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] distarch: x86_64
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] target_arch: x86_64
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] options: { repair: true }
2020-10-23T17:24:42.554+0000 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found. Create the missing directory or specify another path using (1) the --dbpath command line option, or (2) by adding the 'storage.dbPath' option in the configuration file., terminating
2020-10-23T17:24:42.554+0000 I REPL [initandlisten] Stepping down the ReplicationCoordinator for shutdown, waitTime: 10000ms
2020-10-23T17:24:42.554+0000 I SHARDING [initandlisten] Shutting down the WaitForMajorityService
2020-10-23T17:24:42.554+0000 I NETWORK [initandlisten] Shutting down the global connection pool
2020-10-23T17:24:42.554+0000 I STORAGE [initandlisten] Shutting down the FlowControlTicketholder
2020-10-23T17:24:42.554+0000 I - [initandlisten] Stopping further Flow Control ticket acquisitions.
2020-10-23T17:24:42.554+0000 I INDEX [initandlisten] Shutting down the IndexBuildsCoordinator
2020-10-23T17:24:42.554+0000 I NETWORK [initandlisten] Shutting down the ReplicaSetMonitor
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] Shutting down free monitoring
2020-10-23T17:24:42.554+0000 I FTDC [initandlisten] Shutting down full-time data capture
2020-10-23T17:24:42.554+0000 I STORAGE [initandlisten] Shutting down the HealthLog
2020-10-23T17:24:42.554+0000 I - [initandlisten] Dropping the scope cache for shutdown
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] now exiting
2020-10-23T17:24:42.554+0000 I CONTROL [initandlisten] shutting down with code:100
No particular error occurred. I thought I could go, so I restarted and restarted for the time being. .. ..
$ sudo service mongod restart
$ mongo
MongoDB shell version v4.2.10
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2020-10-23T17:27:53.860+0000 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:353:17
@(connect):2:6
2020-10-23T17:27:53.861+0000 F - [main] exception: connect failed
2020-10-23T17:27:53.861+0000 E - [main] exiting with code 1
Hmm Let's take a look at the log file (/var/log/mondodb/mongod.log) ...
$ sudo service mongod start
$ sudo cat /var/log/mongodb/mongod.log
2020-10-23T17:30:25.047+0000 I CONTROL [main] ***** SERVER RESTARTED *****
2020-10-23T17:30:25.047+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-10-23T17:30:25.053+0000 W ASIO [main] No TransportLayer configured during NetworkInterface startup
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] MongoDB starting : pid=15612 port=27017 dbpath=/var/lib/mongodb 64-bit host=sugimoto-1
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] db version v4.2.10
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] git version: 88276238fa97b47c0ef14362b343c5317ecbd739
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] allocator: tcmalloc
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] modules: none
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] build environment:
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] distmod: ubuntu1804
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] distarch: x86_64
2020-10-23T17:30:25.053+0000 I CONTROL [initandlisten] target_arch: x86_64
2020-10-23T17:30:25.053+0000 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-10-23T17:30:25.054+0000 I STORAGE [initandlisten] exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: /var/lib/mongodb, terminating
2020-10-23T17:30:25.054+0000 I REPL [initandlisten] Stepping down the ReplicationCoordinator for shutdown, waitTime: 10000ms
2020-10-23T17:30:25.054+0000 I SHARDING [initandlisten] Shutting down the WaitForMajorityService
2020-10-23T17:30:25.054+0000 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2020-10-23T17:30:25.054+0000 I NETWORK [initandlisten] Shutting down the global connection pool
2020-10-23T17:30:25.054+0000 I STORAGE [initandlisten] Shutting down the FlowControlTicketholder
2020-10-23T17:30:25.054+0000 I - [initandlisten] Stopping further Flow Control ticket acquisitions.
2020-10-23T17:30:25.054+0000 I INDEX [initandlisten] Shutting down the IndexBuildsCoordinator
2020-10-23T17:30:25.054+0000 I NETWORK [initandlisten] Shutting down the ReplicaSetMonitor
2020-10-23T17:30:25.054+0000 I CONTROL [initandlisten] Shutting down free monitoring
2020-10-23T17:30:25.054+0000 I FTDC [initandlisten] Shutting down full-time data capture
2020-10-23T17:30:25.054+0000 I STORAGE [initandlisten] Shutting down the HealthLog
2020-10-23T17:30:25.054+0000 I - [initandlisten] Dropping the scope cache for shutdown
2020-10-23T17:30:25.054+0000 I CONTROL [initandlisten] now exiting
2020-10-23T17:30:25.054+0000 I CONTROL [initandlisten] shutting down with code:100
Apparently, the Restart command I mentioned earlier is working. .. .. But it hasn't started. .. ..
I was wondering what happened, but I tried the methods listed on several other sites, but it didn't work. .. ..
I found a site that I referred to there.
Now, I will explain how to deal with it.
First of all, if this error occurs, it is highly possible that a file called ** mongod.lock ** has been created. This seems to occur when MongoDB is forcibly terminated.
Delete this file first
$ sudo rm /var/lib/mongodb/mongod.lock
Next, check the DBPath.
See /etc/mongod.conf
for how to check
$ sudo cat /etc/mongod.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# 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: 127.0.0.1
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
In my case you can see that dbpath = ** / var / lib / mongodb ** (In other cases, it may be / srv / mongodb, / opt / mongodb)
Then, specify dbpath and execute --repair and --journal. (The default of dbpath seems to be / data / db?)
$ sudo mongod --dbpath /var/lib/mongodb/ --repair
$ sudo mongod --dbpath /var/lib/mongodb/ --journal
When the above command is executed,
$ sudo mongod --dbpath /var/lib/mongodb/ --journal
2020-10-23T17:50:41.718+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-10-23T17:50:41.720+0000 W ASIO [main] No TransportLayer configured during NetworkInterface startup
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] MongoDB starting : pid=15886 port=27017 dbpath=/var/lib/mongodb/ 64-bit host=sugimoto-1
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] db version v4.2.10
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] git version: 88276238fa97b47c0ef14362b343c5317ecbd739
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] allocator: tcmalloc
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] modules: none
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] build environment:
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] distmod: ubuntu1804
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] distarch: x86_64
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] target_arch: x86_64
2020-10-23T17:50:41.720+0000 I CONTROL [initandlisten] options: { storage: { dbPath: "/var/lib/mongodb/", journal: { enabled: true } } }
2020-10-23T17:50:41.720+0000 I STORAGE [initandlisten] Detected data files in /var/lib/mongodb/ created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2020-10-23T17:50:41.720+0000 I STORAGE [initandlisten]
2020-10-23T17:50:41.720+0000 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2020-10-23T17:50:41.720+0000 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2020-10-23T17:50:41.720+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=3476M,cache_overflow=(file_max=0M),session_max=33000,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,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
2020-10-23T17:50:42.329+0000 I STORAGE [initandlisten] WiredTiger message [1603475442:329070][15886:0x7f91cd5dfb00], txn-recover: Recovering log 5 through 6
2020-10-23T17:50:42.366+0000 I STORAGE [initandlisten] WiredTiger message [1603475442:366919][15886:0x7f91cd5dfb00], txn-recover: Recovering log 6 through 6
2020-10-23T17:50:42.415+0000 I STORAGE [initandlisten] WiredTiger message [1603475442:415007][15886:0x7f91cd5dfb00], txn-recover: Main recovery loop: starting at 5/28160 to 6/256
2020-10-23T17:50:42.487+0000 I STORAGE [initandlisten] WiredTiger message [1603475442:487244][15886:0x7f91cd5dfb00], txn-recover: Recovering log 5 through 6
2020-10-23T17:50:42.528+0000 I STORAGE [initandlisten] WiredTiger message [1603475442:528110][15886:0x7f91cd5dfb00], txn-recover: Recovering log 6 through 6
2020-10-23T17:50:42.563+0000 I STORAGE [initandlisten] WiredTiger message [1603475442:563757][15886:0x7f91cd5dfb00], txn-recover: Set global recovery timestamp: (0, 0)
2020-10-23T17:50:42.599+0000 I RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
2020-10-23T17:50:42.604+0000 I STORAGE [initandlisten] Timestamp monitor starting
2020-10-23T17:50:42.606+0000 I CONTROL [initandlisten]
2020-10-23T17:50:42.606+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-10-23T17:50:42.606+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2020-10-23T17:50:42.606+0000 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten]
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** WARNING: This server is bound to localhost.
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** Remote systems will be unable to connect to this server.
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** Start the server with --bind_ip <address> to specify which IP
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning.
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten]
2020-10-23T17:50:42.609+0000 I SHARDING [initandlisten] Marking collection local.system.replset as collection version: <unsharded>
2020-10-23T17:50:42.610+0000 I STORAGE [initandlisten] Flow Control is enabled on this deployment.
2020-10-23T17:50:42.610+0000 I SHARDING [initandlisten] Marking collection admin.system.roles as collection version: <unsharded>
2020-10-23T17:50:42.610+0000 I SHARDING [initandlisten] Marking collection admin.system.version as collection version: <unsharded>
2020-10-23T17:50:42.611+0000 I SHARDING [initandlisten] Marking collection local.startup_log as collection version: <unsharded>
2020-10-23T17:50:42.611+0000 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data'
2020-10-23T17:50:42.612+0000 I SHARDING [LogicalSessionCacheRefresh] Marking collection config.system.sessions as collection version: <unsharded>
2020-10-23T17:50:42.612+0000 I NETWORK [listener] Listening on /tmp/mongodb-27017.sock
2020-10-23T17:50:42.612+0000 I SHARDING [LogicalSessionCacheReap] Marking collection config.transactions as collection version: <unsharded>
2020-10-23T17:50:42.612+0000 I NETWORK [listener] Listening on 127.0.0.1
2020-10-23T17:50:42.612+0000 I NETWORK [listener] waiting for connections on port 27017
2020-10-23T17:50:43.000+0000 I SHARDING [ftdc] Marking collection local.oplog.rs as collection version: <unsharded>
If it says NETWORK [listener] waiting for connections on port 27017
, it's OK for the time being.
Then, leave this executed terminal as it is and start mongodb in another terminal window.
$ mongo
MongoDB shell version v4.2.10
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("51271f1b-ddc0-4774-9aed-c014ed2224ec") }
MongoDB server version: 4.2.10
Server has startup warnings:
2020-10-23T17:50:41.720+0000 I STORAGE [initandlisten]
2020-10-23T17:50:41.720+0000 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2020-10-23T17:50:41.720+0000 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2020-10-23T17:50:42.606+0000 I CONTROL [initandlisten]
2020-10-23T17:50:42.606+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-10-23T17:50:42.606+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2020-10-23T17:50:42.606+0000 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten]
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** WARNING: This server is bound to localhost.
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** Remote systems will be unable to connect to this server.
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** Start the server with --bind_ip <address> to specify which IP
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** addresses it should serve responses from, or with --bind_ip_all to
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** bind to all interfaces. If this behavior is desired, start the
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten] ** server with --bind_ip 127.0.0.1 to disable this warning.
2020-10-23T17:50:42.607+0000 I CONTROL [initandlisten]
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>
The prompt has opened, so it looks okay. For the time being, this is the maximum possible solution I can do at this time.
However, it is quite annoying to start the command in a separate window after executing the command once, so I would like to write an article again if I understand another method.