Als ich eines Tages versuchte, MongoDB zu starten, bekam ich den folgenden Fehler ...
$ 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
Anscheinend kann ich keine Verbindung zum Mongo-Server herstellen! Scheint ein Fehler zu sein
Ich habe nichts Seltsames getan. Als ich Google Sensei fragte, ob es Personen gibt, die Probleme mit denselben Inhalten haben, stellte ich fest, dass es ähnliche Personen gibt. Die meisten Artikel verwenden jedoch den Befehl "Brew Services", was für mich mit Ubuntu eine schmerzhafte Realität war.
(Ubuntu hat auch Linux Brew, aber es scheint, dass Brew Services noch nicht unterstützt werden oder)
Als ich Google Sensei erneut bat, sich auf Websites in Übersee zu verlassen, fand ich eine Website mit einer Lösung. Diesmal möchte ich einen Artikel dazu schreiben
Erstens scheint es einen Befehl namens "mongod --repair" zu geben. Versuchen Sie also, ihn auszuführen.
$ 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
Es ist kein bestimmter Fehler aufgetreten. Ich fragte mich, ob ich gehen könnte, also vorerst neu starten und neu starten. .. ..
$ 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 Werfen wir einen Blick auf die Protokolldatei (/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
Anscheinend funktioniert der zuvor erwähnte Befehl "Neustart". .. .. Aber es hat noch nicht begonnen. .. ..
Ich habe mich gefragt, was passiert ist, aber ich habe die auf mehreren anderen Websites aufgeführten Methoden ausprobiert, aber es hat nicht funktioniert. .. ..
Ich habe eine Seite gefunden, auf die ich dort verwiesen habe.
Jetzt werde ich erklären, wie man damit umgeht.
Wenn dieser Fehler auftritt, ist es sehr wahrscheinlich, dass eine Datei mit dem Namen ** mongod.lock ** erstellt wurde. Dies scheint aufzutreten, wenn MongoDB zwangsweise beendet wird.
Löschen Sie zuerst diese Datei
$ sudo rm /var/lib/mongodb/mongod.lock
Überprüfen Sie als Nächstes den DBPath.
Informationen zur Überprüfung finden Sie unter / etc / mongod.conf
$ 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 meinem Fall können Sie sehen, dass dbpath = ** / var / lib / mongodb ** (In anderen Fällen kann es / srv / mongodb, / opt / mongodb sein.)
Führen Sie dann nach Angabe des Datenbankpfads --repair und --journal aus. (Der Standardwert von dbpath scheint / data / db zu sein?)
$ sudo mongod --dbpath /var/lib/mongodb/ --repair
$ sudo mongod --dbpath /var/lib/mongodb/ --journal
Wenn der obige Befehl ausgeführt wird,
$ 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>
Wenn "NETWORK [Listener] auf Verbindungen an Port 27017 wartet", ist dies vorerst in Ordnung
Lassen Sie dann dieses ausgeführte Terminal unverändert und starten Sie mongodb in einem anderen Terminalfenster.
$ 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()
---
>
Die Eingabeaufforderung wurde geöffnet, sodass sie in Ordnung aussieht. Derzeit ist dies die maximal mögliche Lösung, die ich derzeit tun kann.
Es ist jedoch ziemlich ärgerlich, den Befehl nach einmaliger Ausführung des Befehls in einem separaten Fenster zu starten. Daher möchte ich einen Artikel erneut schreiben, wenn ich eine andere Methode verstehe.
Recommended Posts