J'ai essayé de configurer MongoDB sur mon VPS Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-22-generic x86_64)
et j'ai rencontré quelques problèmes. J'exécute en tant qu'utilisateur sur mon serveur un accès root
mais n'utilise pas le compte root
lui-même.
J'ai commencé à remarquer le problème lorsque j'exécutais db.createUser()
sur la base de données admin
afin de pouvoir ajouter d'autres utilisateurs et j'obtenais cette erreur: not authorized to execute command
J'ai donc ensuite procédé à la désinstallation et à l'installation à nouveau à l'aide du didacticiel fourni sur le site Web: https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/
Maintenant, lorsque je suis sur la scène 2, vérifiez que MongoDB a démarré avec succès dans la section Exécuter MongoDB Community Edition, c’est-à-dire que j’observe ma sortie du fichier /var/log/mongodb/mongod.log
, les éléments suivants sont obtenus:
2017-04-14T14:23:09.309+0200 I CONTROL [main] ***** SERVER RESTARTED *****
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] MongoDB starting : pid=9691 port=27017 dbpath=/var/lib/mongodb 64-bit Host=vps338741
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] db version v3.4.3
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] git version: f07437fb5a6cca07c10bafa78365456eb1d6d5e1
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] allocator: tcmalloc
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] modules: none
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] build environment:
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] distmod: ubuntu1604
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] distarch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] target_Arch: x86_64
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log", quiet: true } }
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten]
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=464M,session_max=20000,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),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory
2017-04-14T14:23:09.367+0200 I - [initandlisten] Assertion: 28595:2: No such file or directory src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
2017-04-14T14:23:09.367+0200 I STORAGE [initandlisten] exception in initAndListen: 28595 2: No such file or directory, terminating
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] now exiting
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] shutting down with code:100
J'ai regardé autour de moi et ce n'est pas la même erreur que celle trouvée ici , car cela est dû au fait qu'il n'y a pas de dossier /data/db
que je possède. À partir de ce journal, je peux voir que cela a quelque chose à voir avec cette ligne:
2017-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory
Ce qui est vrai, quand je vais à /var/lib/mongodb
et que je fais ls -l
, cela résulte avec:
drwxr-xr-x 2 mongodb mongodb 4096 Apr 14 14:10 journal
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:02 mongod.lock
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:10 WiredTiger
-rw-r--r-- 1 mongodb mongodb 21 Apr 14 14:10 WiredTiger.lock
-rw-r--r-- 1 mongodb mongodb 1004 Apr 14 14:10 WiredTiger.turtle
Mais je ne sais pas si je devrais créer manuellement ce fichier car ce problème n’est pas vu ailleurs. Je me suis assuré que l'utilisateur mongodb
dispose également des autorisations requises pour ces fichiers, comme indiqué dans le message dans la réponse à cette question , mais toujours pas de chance.
Je ne sais vraiment pas quoi faire, toute aide serait très appréciée, car c’est ma cinquième tentative pour que cela fonctionne!
Merci!
Ceci est un bogue connu dans MongoDB, vérifiez le report
Votre problème n'est pas que les fichiers manquent en général, c'est qu'ils disparaissent lorsque vous redémarrez après un arrêt complet. Votre problème n'est pas lié au répertoire /data/db
mais plutôt au fichier WiredTiger.wt
qui manque après un redémarrage.
Oct 1 20:00:44 alpha mongod.27017 [1074]: [initandlisten] WiredTiger (2) [1443729644: 306783] [1074: 0x7fdba8fd4bc0], fichier: WiredTiger.wt, connection: /data/db/WiredTiger.wt: Aucun fichier ou répertoire de ce type
Le rapport de bogue parle de la même chose.
Essayez:
Je suggérerais d'essayer et de désactiver WiredTiger dans le fichier de configuration.
Si vous avez créé le mkdir -p /data/db
, il est possible que vous deviez démarrer votre serveur avec la commande suivante: Sudo mongod
macOS/OSX: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
essayez:
Sudo service mongod start;
puis lancez le mongodb avec:
mongo
Cette commande m'a aidé:
mongod --dbpath /data/db --repair
pour moi, la "réponse" était d'exécuter la commande suivante (depuis que service mongod start
et que mongod
a échoué)
Sudo mongod --fork --port 27017 --replSet admin --logpath /data/log/mongo.log
Je n'avais pas besoin d'éteindre le tigre filaire