Impossible de démarrer MongoDB 3.0.2 service sur CentOS 7
De mise en place d'un serveur MongoDB pour l'environnement de production sur l'instance Amazon EC2, mais ne pouvait pas en mesure de démarrer le service. J'ai suivi cette de la documentation pour l'installation. Voici les étapes, j'ai pris pour la configuration du serveur:
Ajouté, à la suite de /etc/yum.repos.d/mongodb-org-3.0.repo
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
Et installé MongoDB 3.0.2 à l'aide de sudo yum install -y mongodb-org-3.0.2
Créé trois partitions de données, journal & journal:
sudo mkdir /mongo
sudo mkdir /mongo/data
sudo mkdir /mongo/log
sudo mkdir /mongo/journal
Créé de système de fichiers pour les trois partitions:
sudo mkfs.ext4 /dev/xvdb
sudo mkfs.ext4 /dev/xvdc
sudo mkfs.ext4 /dev/xvdd
Entrée dans fstab
pour redémarrer:
echo '/dev/xvdb /mongo/data ext4 defaults,auto,noatime,noexec 0 0
/dev/xvdc /mongo/journal ext4 defaults,auto,noatime,noexec 0 0
/dev/xvdd /mongo/log ext4 defaults,auto,noatime,noexec 0 0' | sudo tee -a /etc/fstab
Et monté les partitions:
sudo mount /mongo/data
sudo mount /mongo/journal
sudo mount /mongo/log
Donné les autorisations et le lien créé
sudo chown mongod:mongod /mongo/data /mongo/journal /mongo/log
sudo ln -s /mongo/journal /mongo/data/journal
Configuré ulimit
& lire à l'avance les paramètres indiqués dans la documentation du lien ci-dessus. Vérifié les autorisations et les partitions:
[deployer@prod-mongo ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 8.0G 1.3G 6.8G 16% /
devtmpfs 3.6G 0 3.6G 0% /dev
tmpfs 3.5G 0 3.5G 0% /dev/shm
tmpfs 3.5G 57M 3.4G 2% /run
tmpfs 3.5G 0 3.5G 0% /sys/fs/cgroup
/dev/xvdc 7.8G 36M 7.3G 1% /mongo/journal
/dev/xvdb 150G 51M 149G 1% /mongo/data
/dev/xvdd 3.9G 16M 3.6G 1% /mongo/log
Autorisations:
[deployer@prod-mongo ~]$ ll /
total 32
lrwxrwxrwx. 1 root root 7 Sep 29 2014 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 Sep 29 2014 boot
drwxr-xr-x. 17 root root 2860 May 11 12:11 dev
lrwxrwxrwx. 1 root root 7 Sep 29 2014 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Sep 29 2014 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Jun 10 2014 mnt
drwxr-xr-x. 5 mongod mongod 41 May 11 05:06 mongo
drwxr-xr-x. 21 root root 660 May 11 12:47 run
lrwxrwxrwx. 1 root root 8 Sep 29 2014 sbin -> usr/sbin
À l'intérieur de /mongo
[deployer@prod-mongo ~]$ ll /mongo/
total 12
drwxr-xr-x. 3 mongod mongod 4096 May 11 07:33 data
drwxr-xr-x. 3 mongod mongod 4096 May 11 07:31 journal
drwxr-xr-x. 3 mongod mongod 4096 May 11 08:58 log
Après la modification de la configuration à l'intérieur de /etc/mongodb.conf
logpath=/mongo/log/mongod.log
dbpath=/mongo/data
et quand je fais: sudo service mongod start
, j'obtiens cette erreur:
Starting mongod (via systemctl): Job for mongod.service failed. See 'systemctl status mongod.service' and 'journalctl -xn' for details.
[FAILED]
En outre l'exploitation forestière:
[deployer@prod-mongo ~]$ sudo systemctl status mongod.service
mongod.service - SYSV: Mongo is a scalable, document-oriented database.
Loaded: loaded (/etc/rc.d/init.d/mongod)
Active: failed (Result: exit-code) since Tue 2015-05-12 04:42:10 UTC; 42s ago
Process: 22881 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=1/FAILURE)
May 11 04:42:10 ip-xx-xx-xx-xx.local runuser[22887]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
May 11 04:42:10 ip-xx-xx-xx-xx.localdomain runuser[22887]: pam_unix(runuser:session): session closed for user mongod
May 11 04:42:10 ip-xx-xx-xx-xx.local mongod[22881]: Starting mongod: [FAILED]
May 11 04:42:10 ip-xx-xx-xx-xx.local systemd[1]: mongod.service: control process exited, code=exited status=1
May 11 04:42:10 ip-xx-xx-xx-xx.local systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
May 11 04:42:10 ip-xx-xx-xx-xx.local systemd[1]: Unit mongod.service entered failed state.
J'ai suivi divers articles et billets de blog et de StackExchange réponses, mais n'a pas obtenu de solution. Ai-je raté quelque chose?
Mise à jour: Si je suis en exécutant directement le mongodb
service de l'utilisateur normal quelque chose comme ceci: sudo mongod --logpath ~/mongod.log --dbpath ~/mongodata
, alors ce service est de démarrer correctement.
Nous avons essayé de changer le chemin d'accès de l' pid
fichier dans un autre répertoire, qui n'a pas aidé non plus.
Merci @achuth de prendre le temps. Bien que, je l'ai déjà épuisé le lien que vous avez fourni, mais cela ne fonctionne pas non plus. Aussi, cette solution est nécessaire lorsque nous avons la petite taille de
journal
répertoire. Mais nous avons obtenu de 8 GO pour que.allez-vous poster les états mongod.journal. Êtes-vous commencer mongodb en tant que root ou autre?
Pas de log est généré dans l'emplacement configuré c'est à dire
/mongo/log/mongod.log
peut-être qu'il n'a pas pu créer grâce à des autorisations. Vérifier si les mongo utilisateur est autorisé à accéder à cet emplacement(si ce n'est en tant que root)
OriginalL'auteur Shashank Agrawal | 2015-05-12
Vous devez vous connecter pour publier un commentaire.
Je devine que vous êtes en cours d'exécution, une saveur de Linux qui utilise SELinux (ou CentOS, RHEL 7, peut-être?)
Si oui, le problème est que vous n'avez pas une politique permissive sur votre
/mongo/
répertoire qui permet l'accès à des démons (comme lemongod
service.)De Wikipedia:
Pour vérifier si c'est le problème, essayez ceci à la coque:
sudo setenforce 0
Cela devrait désactiver SELinux politiques et d'autoriser le service à exécuter.
Pour une solution plus permanente, voir https://wiki.centos.org/HowTos/SELinux
OriginalL'auteur Lee Benson
Je suis tombé sur ce problème et, en fait, trouvé une solution pour moi.
En bref, mongodb 3.2 utilise l'utilisateur 'mongod' tandis que les versions plus anciennes, utilisez 'mongodb'. Certains des fichiers et des répertoires étaient détenues par des 'mongodb' (les plus âgés de l'utilisateur). Une fois que j'ai chmod avais à l' 'mongod' utilisateur, j'ai été en mesure d'utiliser systemctl de contrôle de la mongod processus.
Plus précisément, c'était le "/var/log/mongodb/*" les fichiers qui avaient le tort de l'utilisateur de la propriété.
Avis propriétaire du répertoire est "mongod" (le nouvel utilisateur), tandis que les fichiers journaux sont tous la propriété de 'mongodb" (l'ancien utilisateur).
Quelle est la commande "chmod à la "mongod " utilisateur" ?
Je n'ai
sudo chown -R mongod:mongod /var/log/mongodb
, et ça fonctionne. merci.OriginalL'auteur Tobiwan
Dans le cas où, quelqu'un a rencontré le même problème avec MongoDB démarrage, le fil de commentaires https://jira.mongodb.org/browse/SERVER-18439. Il est prévu pour être fixé dans
3.1
.Comme je l'ai mentionné dans la question, j'étais en train de MongoDB à l'aide de la commande depuis le service n'a pas de travail. Après cela, nous n'avons pas mis à niveau le serveur ou MongoDB. @TZHX
OriginalL'auteur Shashank Agrawal