J'ai créé /data/db
dans le répertoire racine et j'ai couru ./mongod
:
[initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
[initandlisten] shutdown: going to close listening sockets...
[initandlisten] shutdown: going to flush diaglog...
[initandlisten] now exiting
[initandlisten] shutting down with code:100
ls -ld /data/db
etid
ainsi nous pouvons vous conseiller.-ld
partie :)drwxrwxrwx. 4 mongod mongod 4096 Sep 17 18:18 /data/db
et j'obtiens toujours l'erreur. Des idées?Réponses:
Le problème est que le répertoire que vous avez créé
/data/db
appartient à l'utilisateur root et n'est accessible en écriture que par l'utilisateur root, mais vous exécutez mongod comme vous-même. Il existe plusieurs façons de résoudre ce problème, mais en fin de compte, vous devez donner au répertoire en question les bonnes autorisations. Si c'est pour la production, je vous conseillerais de vérifier la documentation et d'y réfléchir attentivement - vous voudrez probablement faire attention.Cependant, si ce n'est que pour tester et que vous avez juste besoin de cela pour fonctionner et continuer, vous pouvez essayer ceci, ce qui rendra le répertoire accessible en écriture par tout le monde:
ou ceci, ce qui rendra le répertoire qui vous appartiendra:
la source
-R
de modifier tous les/data/db
fichiers à l'intérieur de manière récursive.chmod
généré une nouvelle erreurinitAndListen : operation not permitted
, mais achown
fonctionné.chmod -R 755 /data/db
Sur un Mac, je devais faire ce qui suit:
car il y avait aussi un fichier dans
/tmp
lequel Mongo avait également besoin d'accéderla source
Si votre système utilise SELinux, assurez-vous que vous utilisez le bon contexte pour le répertoire que vous avez créé:
et clonez le contexte avec:
la source
J'ai rencontré le même problème et la solution suivante a résolu ce problème. Vous devriez essayer la solution suivante.
la source
Tout d'abord, arrêtez tous les services mongoDB , puis créez un répertoire sur
/
, cela signifie root, si vous ne l'avez pas, et supprimez également le fichier de port. donnez toutes les autorisations à ce répertoire, devenez le propriétaire de ce répertoire, exécutez la commande ci-dessous:Maintenant que vous avez terminé, démarrez simplement le service MongoDB, si cela ne vous aide pas, essayez de changer le port comme:
Remarque: Pour moi, tout cela fonctionne et j'espère que cela fonctionnera pour vous, mec!
la source
Corrigez les permissions de
/data/db
(ou/var/lib/mongodb
):puis redémarrez MongoDB par exemple en utilisant
Dans le cas où cela ne résout pas le problème, vérifiez votre message d'erreur si vous utilisez un répertoire de données différent de / var / lib / mongodb. Dans ce cas, exécutez
la source
la source
Belles solutions, mais je me demande pourquoi personne ne donne la solution pour les fenêtres.
Si vous utilisez Windows, il vous suffit de "Exécuter en tant qu'administrateur" la cmd.
la source
Si vous vérifiez vos journaux mongodb et que vous obtenez une telle erreur, suivez simplement les étapes comme je l'ai fait. Cela se produit en raison de problèmes d'autorisation avec votre
/data/db
répertoire. J'utilise ubuntu16.04 et je trouve une solution en exécutant deux commandes simples comme suit.Étape 1: Donnez l'autorisation au répertoire / data / db:
Étape 2: Essayez de démarrer le service mongod en tant que:
Étape 3: Vérifiez l'état du service mongod:
la source
Si vous n'avez pas besoin d'avoir les répertoires de base de données à la racine, vous pouvez créer
data/db
dans votre répertoire personnel (mkdir -p ~/data/db
).Ensuite, vous pouvez démarrer le serveur MongoDB avec l'
--dbpath
option:(Cela suppose que vous le démarrez à partir d'un terminal. Pour une raison étrange,
mongod
n'accepte pas ~ comme chemin du répertoire personnel, d'où la supercherie de substitution d'écho bash, vous pouvez aussi bien écrire/home/yourusername/data/db
)En fait, cela n'a pas à être
~/data/db
, cela peut être où vous voulez et de cette façon, vous pouvez avoir plusieurs chemins de base de données et tout organiser bien. Ce n'est peut-être pas la meilleure option pour la production (selon ce que vous voulez faire), mais pour le développement fonctionne bien.la source
J'ai traité le même problème:
Accédez au répertoire MongoDB qui contient le
bin
répertoire et exécutez:En exécutant MongoDB en tant qu'utilisateur root, vous devrez peut-être entrer le mot de passe root. Si vous ne pouvez toujours pas exécuter MongoDB, vérifiez les autorisations pour le répertoire de données de MongoDB. Entrer:
ou saisissez
ls -l /
les autorisations pour tous les répertoires et fichiers du répertoire, y compris le/data
répertoire.Le mode d'autorisation pour l'utilisateur root doit être "
rwx
", ce qui signifie que l'utilisateur root est capable de lire, d'écrire et d'exécuter les fichiers. Pour y parvenir, nous utilisons:755
est une notation octale pour définir les permissions du/data
répertoire sur "rwxr-xr-x
", ce qui signifie que l'utilisateur root peut lire, écrire et exécuter, alors que le "groupe" et "tout le monde" ne peuvent lire et exécuter que.Remarque: lorsque vous ne pouvez pas faire cela, tapez à la place:
pour définir l'autorisation en tant qu'utilisateur root.
Ensuite, une fois cette étape terminée, récupérez les modes d'autorisation en utilisant:
qui devrait ressembler à:
Vous n'avez pas à vous soucier du "
d
" au début, et notez que les permissions reflètent "rwxr-xr-x
".Vous pouvez maintenant revenir au répertoire MongoDB et taper:
pour exécuter MongoDB.
la source
il vous suffit d'exécuter la commande en tant que super utilisateur:
tapez simplement depuis le terminal: sudo su mongod
la source
Si vous êtes sous Windows et que vous essayez de configurer MongoDB, exécutez cmd en tant qu'admnistrator est la voie à suivre, comme Enrique l'a suggéré ci - dessus, voir ici
la source
Cela a fonctionné pour moi dans Ubuntu LTS 20.04:
la source