web-dev-qa-db-fra.com

MongoDB --- Échec de l'initialisation globale: Échec de l'ouverture de "/var/log/mongodb/mongod-config.log"

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 ...

6
rapidDev

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
3
rapidDev

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"

C:\MongoData\data.log est un fichier vide que j'ai créé dans un nouveau répertoire.

1
Steve Stilson

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 .

Pour plus loin votre ref ici et ici

1

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.

enter image description here

0
nisamudeen97

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".

0
Diego Guedes