ฉันเพิ่งอัพเกรดเป็น Ubuntu 15.10 หลังจากที่ MongoDB 3.0.2 ไม่เริ่มทำงาน
$ sudo service mongod start
ซึ่งจะทำให้เกิดข้อผิดพลาด:
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.
ฉันเพิ่งอัพเกรดเป็น Ubuntu 15.10 หลังจากที่ MongoDB 3.0.2 ไม่เริ่มทำงาน
$ sudo service mongod start
ซึ่งจะทำให้เกิดข้อผิดพลาด:
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.
คำตอบ:
มันเป็นเพียงการขาดไฟล์บริการสำหรับ systemd ไม่จำเป็นต้องกลับไปพุ่งพรวดเหมือน Kartik ทำหรือใช้พื้นที่เก็บข้อมูลที่แตกต่างจากที่อธิบายไว้ในhttps://docs.mongodb.org/manual/installation/
สร้างไฟล์ที่/lib/systemd/system/mongodb.service
มีเนื้อหาดังต่อไปนี้:
[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...
ล้มเหลวอย่างเงียบ ๆ เนื่องจากปัญหาสิทธิ์
/etc/mongod.conf
และไม่ใช่/etc/mongodb.conf
mongod
เพราะนี่คือสิ่งที่พวกเขาใช้ในเว็บไซต์อย่างเป็นทางการของพวกเขา ดังนั้นmongodb.conf
ควรเป็นmongod.conf
และชื่อไฟล์ควรเป็น/lib/systemd/system/mongod.service
ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากปัญหากับ Ubuntu ใหม่ (15 ขึ้นไป)
ระบบ init เริ่มต้นsystemdซึ่งพุ่งพรวดก่อนหน้านี้ ดังนั้นคุณต้องติดตั้งพุ่งพรวดรีบูตระบบของคุณและไปเลยตอนนี้คุณสามารถเรียกใช้บริการ mongodb ได้แล้ว
sudo apt-get install upstart-sysv
sudo service mongod start
mongod start/running, process 3371
mongodb
ฉันใช้แพ็คเกจเดเบียนใน Ubuntu 15.10
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
อาจมีปัญหามากมาย แต่ขึ้นอยู่กับสิ่งที่ทำให้เกิดปัญหาของคุณคุณอาจได้รับ Mongodb ของคุณทำงานผ่าน init.d:
sudo /etc/init.d/mongodb start
ใช้งานได้สำหรับฉัน แต่ไม่ใช่วิธีแก้ปัญหาระยะยาวเนื่องจากคุณต้องเปิดใช้งานหลังจากรีสตาร์ททุกครั้งหรือเพิ่มลงในงานเริ่มต้นของคุณ ดังนั้นฉันจึงติดตามสิ่งต่อไปนี้:
1) การสร้างไฟล์บริการตามที่อธิบายโดย 'sclausen'
2) โหลดบริการอีกครั้งโดยเรียกใช้:
sudo systemctl daemon-reload
3) วิ่ง sudo service mongodb start
4) คำสั่งรันโดยไม่มีเอาต์พุต ดังนั้นฉันทดสอบโดยใช้mongo
และได้รับข้อผิดพลาดซ็อกเก็ต:
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) ตรวจสอบบันทึกtail -n 50 /var/log/mongodb/
และพบข้อผิดพลาดพื้นฐาน:
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) ลบไฟล์ซ็อกเก็ตที่มีปัญหา: sudo rm /tmp/mongodb-27017.sock
ตามที่แนะนำในหัวข้อนี้: /programming/29813648/failed-to-unlink-socket-file-error-in-mongodb-3-0
7) อีกครั้งวิ่งบริการ: sudo service mongodb start
ณ จุดนั้นทุกอย่างดีและบ๊อบกลับไปที่ตำแหน่งที่ถูกต้องของเขาในฐานะลุงของฉัน
ในกรณีของฉันฉันมี Ubuntu 16.04.1 ฉันกำลังติดตั้ง MongoDB 3.2.11 และฉันได้รับข้อผิดพลาดเดียวกันนั้น หลังจากล้างอัพและลองใหม่หลายครั้งในที่สุดก็ทำงาน "เปิดใช้งาน" บริการ:
systemctl enable mongod.service
จากนั้นมันก็ใช้งานได้