J'essaie de configurer les serveurs de configuration pour le partage de mongodb. J'ai créé un fichier de configuration spécifique qui est configuré pour se connecter à /var/log/mongodb/mongod-config.log
.
Quand je lance mongod --config <path-to-config-file>
, J'obtiens cette erreur:
`F CONTROL [main] Failed global initialization: FileNotOpen: Failed to open
"/var/log/mongodb/mongod-config.log"`
Lorsque j'exécute la même commande mais avec Sudo
, elle s'exécute mais il n'y a pas de sortie.
Mais quand j'essaie de démarrer le shell mongo au port (27019) spécifié par mon fichier de configuration, j'obtiens ceci:
MongoDB Shell version v3.6.4
connecting to: mongodb://127.0.0.1:27019/test
2018-05-01T03:13:13.399+0000 W NETWORK [thread1] Failed to connect to
127.0.0.1:27019, in(checking socket for error after poll), reason: Connection
refused
2018-05-01T03:13:13.400+0000 E QUERY [thread1] Error: couldn't connect to
server 127.0.0.1:27019, connection attempt failed :
connect@src/mongo/Shell/mongo.js:251:13
@(connect):1:6
exception: connect failed
Je suis juste en train de suivre la documentation de partage de MongoDB
J'ai vu certains des messages précédents ici et l'un était le même problème . Il n'y a pas de solution, mais je veux réessayer et voir si quelqu'un a une solution à cela.
Je ne sais pas si j'ai raté quelque chose ou quel est le problème ...
J'ai donc compris ma propre question.
Tout d'abord, le problème était que, puisque j'utilisais un autre port 27019 pour les serveurs de configuration, je devais ouvrir ce port à partir du pare-feu.
Deuxièmement, j'ai changé le dbPath dans mon fichier de configuration de /var/lib/mongodb
à /data/db
puisque c'est le chemin par défaut pour mongodb pour stocker les données.
Assurez-vous d'exécuter Sudo service mongod restart
après.
Cela fait, j'ai pu démarrer mongod avec mon fichier de configuration spécifique:
Sudo mongod --config <path-to-config-file>
La clé est d'inclure Sudo
pour moi. Cela a résolu le problème de:
F CONTROL [main] Failed global initialization: FileNotOpen: Failed to open
"/var/log/mongodb/mongod-config.log"
Après avoir exécuté la commande, je vois que mongod a démarré sur ma machine virtuelle (vm) et maintenant je peux me connecter au mongo Shell de ladite vm à partir d'une autre machine avec:
mongo <ip_address_of_said_vm>:27019
Vous devrez créer votre propre fichier journal dans votre propre répertoire. Vous ne pouvez pas utiliser le mongod.log
. Si vous essayez d'écrire dans le mongod.log
fichier fourni avec l'installation de MongoDB, vous obtiendrez Échec de l'ouverture et L'accès est refusé.
Si vous exécutez Mongo sur un ordinateur portable Windows, vous devez le démarrer avec une commande similaire à celle-ci:
mongod --dbpath "C:\Program Files\MongoDB\Server\4.2" --logpath "C:\MongoData\data.log"
où C:\MongoData\data.log
est un fichier vide que j'ai créé dans un nouveau répertoire.
Par défaut, MongoDB crée le fichier journal à ce chemin /var/log/mongodb/mongodb.log
, si le fichier journal n'est pas trouvé, veuillez vérifier avec le fichier de configuration MongoDB.
logpath
Vérifiez le fichier de configuration MongoDB à /etc/mongod.conf
ou /yourMongoDBpath/mongod.conf
, le chemin d'accès au journal défini où se connecter.
/etc/mongod.conf
$ cat /etc/mongod.conf # mongod.conf
Où stocker les données.
Remarque: si vous exécutez mongodb en tant qu'utilisateur non root (recommandé), vous devrez peut-être créer et définir des autorisations pour ce répertoire manuellement, par exemple, si le répertoire parent n'est pas modifiable par l'utilisateur mongodb.
dbpath=/var/lib/mongodb
où se connecter
logpath=/var/log/mongodb/mongod.log
...
Par exemple
Ici, j'en mentionne un mongod.conf
fichier avec dbpath
et logpath
. Et je vais montrer ici comment démarrer le serveur mongod
ainsi que mongo
Shell.
sharding:
clusterRole: configsvr
replication:
replSetName: repltest
security:
keyFile: /var/mongodb/pki/replkeyfile
net:
bindIp: localhost,192.168.103.100
port: 26001
systemLog:
destination: file
path: /var/mongodb/db/csrs1/mongod.log
logAppend: true
processManagement:
fork: true
storage:
dbPath: /var/mongodb/db/csrs1
~
Ensuite, pour démarrer mongod avec --fork, utilisez la commande telle que
/var/mongodb/db/csrs1$ mongod -f csrs1.conf
sur le point de bifurquer le processus enfant, en attendant que le serveur soit prêt pour les connexions. processus fourchu: 2101 processus enfant démarré avec succès, parent sortant
Et pour démarrer le Mongo Shell
mongo --port 26001
Une partie du blog MongoDB jira liée à l'erreur ici et ici .
J'ai également rencontré le même problème en essayant de démarrer le service mongodb sur mon serveur Debian9 64 bits. Je pouvais voir les informations ci-dessous lors de la vérification de l'état.
:~# systemctl status mongod.service
● mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2019-02-22 14:52:17 CET; 11s ago
Docs: https://docs.mongodb.org/manual
Process: 20914 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=1/FAILURE)
Main PID: 20914 (code=exited, status=1/FAILURE)
Feb 22 14:52:17 server-test systemd[1]: Started High-performance, schema-free document-oriented database.
Feb 22 14:52:17 server-test mongod[20914]: 2019-02-22T14:52:17.650+0100
F CONTROL [main] Failed global initialization: FileNotOpen: Failed to open "/var/log/mongodb/mongod.log"
Feb 22 14:52:17 server-test systemd[1]: mongod.service: Main process exited, code=exited, status=1/FAILURE
Feb 22 14:52:17 server-test systemd[1]: mongod.service: Unit entered failed state.
Feb 22 14:52:17 server-test systemd[1]: mongod.service: Failed with result 'exit-code'.
J'ai également obtenu des informations détaillées sur chaque résultat de la commande de démarrage dans "/var/log/daemon.log"
. Je pouvais voir les informations "Failed global initialization: FileNotOpen: Failed to open "/var/log/mongodb/mongod.log"
qui était l'un des indices du problème. Lors de la vérification, je pouvais voir que le fichier mongod.log était sous root et que le service commençait sous l'utilisateur "mongodb". Donc appliqué le correctif ci-dessous.
fix1: - chown mongodb:mongodb /var/log/mongodb/mongod.log
En essayant de redémarrer, j'ai pu voir le service afficher une nouvelle erreur cette fois dans "daemon.log"
mongod.service: Main process exited, code=exited, status=100/n/a
mongod.service: Unit entered failed state.
Cette erreur est due au fait que l'emplacement de stockage des fichiers mongodb a des problèmes et n'a pas pu accéder à ses fichiers.
fix2. chown -R mongodb:mongodb /var/lib/mongodb/*
Voir la capture d'écran ci-jointe. Maintenant, je peux démarrer le service.
Dans Windows OS, j'ai eu le même problème. Le problème était l'autorisation du fichier. Ensuite, dans le fichier "mongod.log" dans "C:\Program Files\MongoDB\Server\4.2\log", je n'avais pas la permission d'écrire. Ensuite, dans "propriétés" du fichier, aba "Sécurité" dans Je mets la permission "d'écrire".