Un jour, quand j'ai essayé de démarrer MongoDB, j'ai eu l'erreur suivante ...
$ 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
Apparemment, je ne peux pas me connecter au serveur Mongo! Semble être une erreur
Je n'ai rien fait d'étrange, alors quand j'ai demandé à Google Sensei s'il y avait des personnes qui avaient des problèmes avec le même contenu, j'ai découvert qu'il y avait des personnes similaires.
Cependant, la plupart des articles utilisent la commande brew services
, ce qui était une réalité douloureuse pour moi en utilisant Ubuntu.
(Ubuntu a également Linux Brew, mais il semble que les services de brassage ne soient pas encore pris en charge orz)
Alors quand j'ai demandé à nouveau à Google Sensei de s'appuyer sur des sites étrangers, j'ai trouvé un site avec une solution. Cette fois, je voudrais écrire un article en référence à cela
Premièrement, il semble y avoir une commande appelée mongod --repair
, alors essayez de l'exécuter.
$ 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
Aucune erreur particulière ne s'est produite. Je me suis demandé si je pouvais y aller, alors pour le moment, redémarrez et redémarrez. .. ..
$ 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 Jetons un coup d'oeil au fichier journal (/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
Apparemment, la commande Redémarrer que j'ai mentionnée plus tôt fonctionne. .. .. Mais ça n'a pas commencé. .. ..
Je me demandais ce qui s'était passé, mais j'ai essayé les méthodes répertoriées sur plusieurs autres sites, mais cela n'a pas fonctionné. .. ..
J'ai trouvé un site auquel je faisais référence.
Maintenant, je vais vous expliquer comment y faire face.
Tout d'abord, si cette erreur se produit, il est fort possible qu'un fichier appelé ** mongod.lock ** ait été créé. Cela semble se produire lorsque MongoDB est arrêté de force.
Supprimez d'abord ce fichier
$ sudo rm /var/lib/mongodb/mongod.lock
Ensuite, vérifiez le DBPath.
Voir / etc / mongod.conf
pour savoir comment vérifier
$ 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:
Dans mon cas, vous pouvez voir que dbpath = ** / var / lib / mongodb ** (Dans d'autres cas, il peut s'agir de / srv / mongodb, / opt / mongodb)
Ensuite, après avoir spécifié le dbpath, exécutez --repair et --journal. (La valeur par défaut de dbpath semble être / data / db?)
$ sudo mongod --dbpath /var/lib/mongodb/ --repair
$ sudo mongod --dbpath /var/lib/mongodb/ --journal
Lorsque la commande ci-dessus est exécutée,
$ 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>
Si c'est NETWORK [listener] attendant les connexions sur le port 27017
, c'est OK pour le moment
Ensuite, laissez ce terminal exécuté tel quel et démarrez mongodb dans une autre fenêtre de terminal.
$ 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()
---
>
L'invite s'est ouverte, donc ça semble correct. Pour le moment, c'est la solution maximale possible que je puisse faire en ce moment.
Cependant, il est assez ennuyeux de démarrer la commande dans une fenêtre séparée après avoir exécuté la commande une fois, donc je voudrais écrire à nouveau un article si je comprends une autre méthode.
Recommended Posts