Yanıtlar:
Bu sadece systemd için bir hizmet dosyasının eksikliği. Kartik'in yaptığı gibi yeniden başlatmak için geri gitmeye veya https://docs.mongodb.org/manual/installation/ adresinde açıklanandan farklı bir depo kullanmaya gerek yoktur .
/lib/systemd/system/mongodb.service
Aşağıdaki içeriğe sahip bir dosya oluşturun :
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf
[Install]
WantedBy=multi-user.target
sudo service...
izin sorunları nedeniyle sessizce başarısız oldu
/etc/mongod.conf
ve çağrılmaz/etc/mongodb.conf
mongod
, resmi sitelerinde kullandıkları şey olduğu için olmalıdır . Yani mongodb.conf
olmalı mongod.conf
ve dosya adı olmalıdır/lib/systemd/system/mongod.service
Bu hata, yeni Ubuntu (15 ve sonrası) ile ilgili sorun nedeniyle oluştu.
Varsayılan init sistemi olup systemd hangi Sonradan görme önceden. Bu yüzden Upstart'ı yüklemeniz, sisteminizi yeniden başlatmanız gerekiyor ve işte şimdi, mongodb servisini çalıştırabilirsiniz.
sudo apt-get install upstart-sysv
sudo service mongod start
mongod start/running, process 3371
mongodb
Ubuntu 15.10'da debian paketini kullandım
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
15.10'a geçtikten sonra benzer sorunlar yaşadım.
Çok fazla sorun olabilir, ancak sorunun nedenine bağlı olarak mongodb'unuzu init ile çalıştırabilirsiniz.
sudo /etc/init.d/mongodb start
Bu benim için çalıştı, ancak her yeniden başlatmadan sonra çalıştırmanız veya başlangıç görevlerinize eklemeniz gerektiğinden uzun vadeli bir çözüm değil. Bu yüzden aşağıdakileri takip ettim:
1) 'sclausen' ile açıklandığı gibi hizmet dosyasını oluşturmak.
2) çalıştırarak hizmeti yeniden yükleyin:
sudo systemctl daemon-reload
3) koştu sudo service mongodb start
4) Komut çıktısız çalıştırıldı. Bu yüzden çalıştırarak test ettim mongo
ve bir soket hatası aldım:
Error: connect ECONNREFUSED 127.0.0.1:27017
at Object.exports._errnoException (util.js:870:11)
at exports._exceptionWithHostPort (util.js:893:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1062:14)
5) Günlükleri inceledik tail -n 50 /var/log/mongodb/
ve temeldeki hatayı öğrendim:
2016-02-26T14:28:23.538+1100 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
6) sorunlu soket dosyasını sildi: sudo rm /tmp/mongodb-27017.sock
bu konuda önerildiği gibi: /programming/29813648/failed-to-unlink-socket-file-error-in-mongodb-3-0
7) hizmeti yeniden koştu: sudo service mongodb start
o noktada her şey iyiydi ve Bob amcam olarak haklı pozisyonuna geri döndü.
Benim durumumda, Ubuntu 16.04.1 var, MongoDB 3.2.11'i kuruyordum ve aynı hatayı alıyordum. Birkaç temizlik ve tekrar denemeden sonra, sonunda hizmeti "etkinleştirmek" için çalıştı:
systemctl enable mongod.service
Sonra işe yaradı