MongoDB 2.6 ไม่เริ่มทำงานบน Ubuntu 15.04


51

ฉันติดตั้ง MongoDB 2.6บน Ubuntu 15.04 ที่ติดตั้งใหม่ทั้งหมด:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install -y mongodb-org

มันเสร็จโดยไม่มีปัญหาใด ๆ อย่างไรก็ตามเมื่อฉันพยายามเริ่มมันฉันได้รับข้อผิดพลาดดังต่อไปนี้:

$ sudo service mongod start
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

คำตอบ:


65

ฉันติดตั้งจากที่เก็บ debian wheezeและทำงานได้ดี

ก่อนอื่นให้แน่ใจว่าคุณลบแพ็คเกจ mongodb-org และการอ้างอิงทั้งหมด:

sudo apt-get purge mongodb-org
sudo apt-get autoremove

ลบ mongodb.list เก่าที่คุณสร้าง:

sudo rm /etc/apt/sources.list.d/mongodb.list

ใช้ที่เก็บ Debian แทน:

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

หลังจากนั้นคุณสามารถประสบความสำเร็จในการเริ่มต้นเซิร์ฟเวอร์:

sudo service mongod start

หรือ

systemctl start mongod

(ตามที่ชี้แจงโดยเออร์นี่เฮอร์ชีย์เพื่อตอบความคิดเห็นของ Roman Gaufman ที่นี่: https://jira.mongodb.org/browse/SERVER-17742 )


1
ฉันพยายามและไม่ได้รับบริการเมื่อพยายามเริ่มต้น Mongo
Moshe Revah

2
คุณแน่ใจหรือไม่ว่าคุณได้อ้างอิงอัตโนมัติ ฉันได้รับเช่นกัน แต่แล้วฉันก็รู้ว่าไม่ได้ลบแพ็คเกจที่เกี่ยวข้องทั้งหมดของ MongoDB หลังจากลบพวกเขาทั้งหมดและติดตั้งจากที่เก็บ wheezy มันทำงานได้ดีกับ systemd
ขาย Dielson

1
ช่วยให้ฉันปวดหัวได้มาก
Srivathsa Harish Venkataramana

1
ขอขอบคุณ. ล้างตามด้วย autoremove (เกือบลืม) ทำเคล็ดลับ
Nenad Vukicevic

ในกรณีของฉันเมื่อวันที่ 14.04 แต่มีแนวโน้มที่จะลดลง 15.04 การ/var/log/syslogตรวจสอบความพยายามที่ล้มเหลวแล้วการแก้ไข/etc/init/mongodb.confยังสามารถช่วยได้หากคุณใช้ไดเรกทอรีข้อมูลที่ไม่ได้มาตรฐานสมุดบันทึกหรืออินสแตนซ์ผู้ใช้
กินที่ Joes

25

ทีม MongoDB กล่าวว่าพวกเขาจะไม่สนับสนุน Ubuntu 15.04 และวางแผนที่จะสนับสนุน 16.04 แทน (ดูhttps://jira.mongodb.org/browse/SERVER-17742 )

Ubuntu 15.04 ทำให้ระบบเริ่มต้นเริ่มต้นจากพุ่งพรวดสู่ systemd ฉันไม่ประสบความสำเร็จในการเริ่มต้น MongoDB 3.0 ด้วย systemd

คุณสามารถเปลี่ยนกลับไปเป็นคนธรรมดาโดยติดตั้งupstart-sysv:

sudo apt-get install upstart-sysv

จากนั้นเริ่มต้นใหม่และ MongoDB ควรจะเพิ่มขึ้น

ฉันหวังว่าจะหาวิธีที่ง่ายในการใช้งาน MongoDB บน ​​Ubuntu 15.04 โดยไม่ต้องสลับสิ่งต่าง ๆ ย้อนเวลา


2
นี่เป็นวิธีที่ดีที่สุดในการแก้ปัญหานี้ในตอนนี้ หากใครรู้วิธีอื่นโปรดแชร์ที่นี่
เฟอร์นันโดโคช

ในกรณีของฉันติดตั้งพุ่งพรวด -sysv และรีสตาร์ทเพิ่งเกิดปัญหา
Didac Montero

@DidacMontero ดูที่wiki.ubuntu.com/SystemdForUpstartUsersสำหรับตัวเลือกอื่น ๆ
Moshe Revah

ใช้งานได้สำหรับฉันบน Ubuntu 15.04 ขอบคุณสำหรับการแก้ไข!
Lil 'Bits

มันทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน
slimflem

4

คุณกำลังติดตั้งจากแพ็คเกจที่เผยแพร่โดยตรงจาก mongodb.org คุณควรติดตั้งจากแพ็คเกจที่ให้ไว้ใน Ubuntu respository แพ็คเกจ Debian / Ubuntu ได้รับการติดตั้งด้วย systemd service units เพื่อเติมเต็มหลุมที่เหลืออยู่โดย mongodb.org

(ไม่มีปัญหาmongodb.serviceไฟล์หน่วยใน WWW ไม่ยากที่จะเขียนไฟล์เช่นกันฉันมี)

โดยเฉพาะ: คุณจะพบเช่นหน่วยบริการในMongoDB เซิร์ฟเวอร์รุ่น 2.6 แพคเกจสำหรับ Ubuntu รุ่น 15 ดังนั้นเพียงแค่ติดตั้งแพคเกจนั้น

(โปรดทราบว่าหน่วยบริการที่จัดหาโดย Debian / Ubuntu จะไม่ใช้คำสั่งหน่วยบริการ systemd ที่แนะนำโดย mongo )

อ่านเพิ่มเติม


อย่างไรก็ตามวิธีการนี้ไม่ได้แก้ปัญหาสำหรับผู้ที่ต้องการ MongoDB> = 3.0
Dielson Sales

ใช่แล้ว. คุณไม่ได้อ่านอย่างชัดเจนทั้งย่อหน้าที่สองหรืออ่านเพิ่มเติม
JdeBP

4

ฉันสร้างสคริปต์ Systemd ซึ่งดูเหมือนว่าทำงานได้กับ Ubuntu 15.04+ และ Mongo 3.0+:

[Unit]
Description=High-performance, schema-free document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
RuntimeDirectory=mongod
PIDFile=/var/run/mongod/mongod.pid
ExecStart=/usr/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod/mongod.pid --fork
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

https://gist.github.com/benileo/ada486d73f58dd93a0ee

ตรวจสอบให้แน่ใจว่าคุณตั้งค่าไดเรกทอรีข้อมูลของคุณ /etc/mongod.conf


1
นี่คือทางออกที่ดีที่สุด
J. Bruni

ลิงก์ใช้งานไม่ได้อีกต่อไป
Hotbelgo

แก้ไขลิงก์
benileo

แน่นอนว่าควรทำเครื่องหมายว่าเป็นทางออกที่ดีที่สุด
Wédney Yuri

1

นี่ไม่ใช่คำตอบที่ดีที่สุดใช่ไหม จากคำถามที่ซ้ำกัน: https://askubuntu.com/a/694226/255468โดย @sclausen


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

1

https://jira.mongodb.org/browse/SERVER-17742

ดูเหมือนว่าสิ่งนี้อาจจะไม่ได้รับการแก้ไขอย่างสมบูรณ์สำหรับ> 2.6.3 จนกระทั่ง Ubuntu 16.04 เว้นแต่ว่ามีการร้องที่รุนแรง

ดังนั้นทางออกสำหรับฉันคือการออก:

sudo apt-get install --reinstall mongodb


0

คำตอบเหล่านี้จำนวนมากเกี่ยวข้องกับ Mongo 3.0 ในขณะที่คำถามถามเฉพาะเกี่ยวกับ 2.6

ฉันประสบความสำเร็จในการติดตั้ง 2.6 โดยใช้พื้นที่เก็บข้อมูล Debian จาก 10gen ดูเหมือนว่าจะทำงานได้อย่างสมบูรณ์กับ Ubuntu 15.04

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-org

แหล่งที่มา: วิธีการติดตั้ง MongoDB 2.6 บน Ubuntu 14.10, 14.04 และ 12.04 LTS


0

ในขณะที่คำถามสำหรับรุ่น 2.6 ฉันได้รับข้อผิดพลาดเดียวกันที่แน่นอนUnit mongod.service failed to loadใน Ubuntu 15.04 สำหรับรุ่น 3.0.6 ได้รับการแก้ไขขั้นสุดท้ายโดยใช้พื้นที่เก็บข้อมูลแบบเดียวกันกับที่กล่าวโดย Dielson Sales ด้านบน

และหลังจากการติดตั้ง (ทำตามขั้นตอนรายละเอียดโดย @Dielson Sales) พบข้อผิดพลาดดังกล่าวข้างต้น นี่คือวิธีที่ฉันจะแก้ไขในที่สุด

A) เปลี่ยนไฟล์ที่เก็บข้อมูลเริ่มต้นของ MongoDB จาก/ var / lib / mongodbเป็น/ data / db

  • ขั้นแรกให้สร้างไดเร็กทอรีใหม่ / data / db sudo mkdir -p /data/db

  • เปิดไฟล์ mongod.conf sudo gedit /etc/mongod.confและเปลี่ยนบรรทัด“ dbpath” ดังต่อไปนี้

  • แทนที่DBPath = / var / lib / MongoDB TO DBPath = / ข้อมูล / ฐานข้อมูลและบันทึกไฟล์

  • จากนั้นลบค่าเริ่มต้นเก่า / var / lib / mongodb

  • ตอนนี้เราต้องสร้างไดเรกทอรี / ไฟล์ทั้งหมดที่เป็นของผู้ใช้ mongod

B) วิ่ง sudo chown -R mongodb:mongodb /data/db

และในที่สุดฉันก็เริ่ม mongo ด้วย sudo service mongod start

และแสดงว่าบริการกำลังทำงานด้วยsudo systemctl status mongod - ควรแสดงข้อความที่คล้ายกับด้านล่าง

Loaded: loaded (/etc/init.d/mongod)

Active: active (running) since Thu 2015-09-03 04:57:49 IST; 7s ago

มีรายละเอียดขั้นตอนของฉันในโพสต์บล็อกของฉัน


0

ก่อนอื่นดาวน์โหลด Mongodb:

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

ดึงดาวน์โหลด:

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

เรียกใช้ mongod (mongodb-linux-x86_64-3.0.6.tgz / bin / mongod) ด้วยแอตทริบิวต์ -dbpath:

sudo ./mongod --dbpath /path/of/the/directory

มันอาจเป็นไดเรกทอรีว่าง ๆ ที่คุณเลือก

และสุดท้ายเรียกใช้ mongo (mongodb-linux-x86_64-3.0.6.tgz / bin / mongo)

./mongo

ทำงานบน Ubuntu ของฉัน 15 :)

ขอโทษสำหรับภาษาอังกฤษที่ไม่ดีของฉันฉันอาศัยอยู่ในบราซิล


0

หลังจากชั่วโมงจากการค้นหาการแก้ปัญหาคือการอัพเกรดอูบุนตูของฉันจาก 15.04 เป็น 16.04 โดยใช้คำสั่งนี้:

ขั้นตอนที่ 1

sudo do-release-upgrade -d 

จะใช้เวลาสองสามนาทีดังนั้นอย่าตื่นตระหนกกว่าคุณต้องลบ mongodb:

ขั้นตอนที่ 2

sudo apt-get purge mongodb-org 
sudo apt-get autoremove`  
rm /etc/apt/sources.list.d/mongodb-org-3.0.list`  

และตอนนี้ติดตั้ง mongodb แต่ใช้แหล่งข้อมูลนี้:

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

ขั้นตอนที่ 3

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  
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 mongodb-org
sudo service mongod status

และนั่นคือมัน

หมายเหตุ: หากคุณได้รับข้อผิดพลาดเช่น 'E: ประเภท' deb 'ในบรรทัดแรก . . ในไฟล์ mongodb-org-3.0.list

สิ่งที่คุณต้องทำคือเข้าไปในไฟล์นี้โดยใช้ gedit และลบ 'ในตอนต้นและตอนท้ายของประโยค


ส่วนนี้ "ทางออกคือการอัพเกรดอูบุนตูของฉันจาก 15.04 เป็น 16.04 ... " ยังไม่เข้าท่าเพราะ 16.04 ยังไม่ออกวางจำหน่าย
clearkimura

1
@clearkimura ใช่แล้ว ในอัลฟา ไม่ว่าจะติดตั้ง Ubuntu 16.04 ทุกวันในคอมพิวเตอร์ของฉันและฉันก็ไม่พบปัญหาใด ๆ
ระบบปฏิบัติการ Star

0

อูบุนตู 15.04+ ใช้systemd แทนที่จะพุ่งพรวด เริ่มต้นด้วยอย่างเป็นทางการของ MongoDB คู่มือการติดตั้ง จากนั้นใช้เจ้าหน้าที่mongod.service:

[Unit]
Description=High-performance, schema-free document-oriented database

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid

[Install]
WantedBy=multi-user.target

ดาวน์โหลดแก้ไขติดตั้งบริการและตั้งค่าสิทธิ์ + dir

$ curl -OL https://raw.githubusercontent.com/mongodb/mongo/1663f45b4e33e058a0203a81f50574a870882c34/rpm/mongod.service
$ sed -i 's/\/usr\/local/\/usr/g' mongod.service
$ sed -i '/Desc/a After=network.target' mongod.service
$ sudo sed -i '0,/\/var\/lib\/mongodb/s//\/data\/db/' /etc/mongod.conf
$ sudo cp mongod.service /lib/systemd/system/mongo.service
$ sudo mkdir -p /data/db
$ sudo chown -R mongodb:mongodb /data
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod

เริ่มบริการ

$ sudo systemctl start mongod

ตรวจสอบสถานะบริการ

$ sudo systemctl status mongod

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