MongoDB 3.0.2 จะไม่เริ่มทำงานหลังจากอัปเกรดเป็น Ubuntu 15.10


14

ฉันเพิ่งอัพเกรดเป็น 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.

คำตอบ:


21

มันเป็นเพียงการขาดไฟล์บริการสำหรับ 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

ดูเพิ่มเติมทราบในaskubuntu.com/a/617869/43344
JdeBP

ฉันจะเพิ่มที่คุณต้องระวังเป็นเจ้าของไฟล์ของไดเรกทอรีข้อมูลล็อค tmp fs และไฟล์บันทึก ฉันล้อเล่นเพื่อพยายามทำงานนี้และsudo service...ล้มเหลวอย่างเงียบ ๆ เนื่องจากปัญหาสิทธิ์
Hotbelgo

4
ด้วยเหตุผลบางอย่างไฟล์กำหนดค่าเริ่มต้นจะถูกเรียกใช้/etc/mongod.confและไม่ใช่/etc/mongodb.conf
mightyuhu

1
@mightyuhu ถูกต้องโดยไม่ต้องกำหนดเส้นทางที่ถูกต้องฉันได้รับความล้มเหลว ด้วยเส้นทางที่ถูกต้องฉันจะไม่ล้มเหลว
user1063287

2
ขอบคุณ! นี่คือคำตอบที่ถูกต้อง สิ่งหนึ่งที่มีขนาดเล็ก: ชื่อบริการควรเป็นmongodเพราะนี่คือสิ่งที่พวกเขาใช้ในเว็บไซต์อย่างเป็นทางการของพวกเขา ดังนั้นmongodb.confควรเป็นmongod.conf และชื่อไฟล์ควรเป็น/lib/systemd/system/mongod.service
caisah

12

ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากปัญหากับ Ubuntu ใหม่ (15 ขึ้นไป)

ระบบ init เริ่มต้นsystemdซึ่งพุ่งพรวดก่อนหน้านี้ ดังนั้นคุณต้องติดตั้งพุ่งพรวดรีบูตระบบของคุณและไปเลยตอนนี้คุณสามารถเรียกใช้บริการ mongodb ได้แล้ว

  • ติดตั้งพุ่งพรวด

sudo apt-get install upstart-sysv

  • รีบูตระบบของคุณ

sudo service mongod start

mongod start/running, process 3371


1
ชื่อบริการอยู่ในขณะนี้mongodb
sowrov

@sowrov ไม่ชื่อบริการล่าสุดยังคงเป็น 'mongod'
Clay Ferguson

1
หลังจากติดตั้งพุ่งพรวด -sysv และรีบูตอูบุนตู 16.04 ของฉันมันว่างเปล่า ฉันต้องไปกู้คืนและรับเอาออก เธรดนี้อาจมีประโยชน์หากคุณต้องการใช้ upstart askubuntu.com/questions/760615/…ต่อไปเรื่อย ๆ
jrgd

5

ฉันใช้แพ็คเกจเดเบียนใน 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

1

ฉันมีปัญหาที่คล้ายกันหลังจากอัปเกรดเป็น 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

ณ จุดนั้นทุกอย่างดีและบ๊อบกลับไปที่ตำแหน่งที่ถูกต้องของเขาในฐานะลุงของฉัน


0

ในกรณีของฉันฉันมี Ubuntu 16.04.1 ฉันกำลังติดตั้ง MongoDB 3.2.11 และฉันได้รับข้อผิดพลาดเดียวกันนั้น หลังจากล้างอัพและลองใหม่หลายครั้งในที่สุดก็ทำงาน "เปิดใช้งาน" บริการ:

systemctl enable mongod.service

จากนั้นมันก็ใช้งานได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.