MongoDb ปิดตัวลงด้วยรหัส 100 [ปิด]


93

ฉันติดตาม MongoDb Docsเพื่อตั้งค่า MongoDb แรกของฉัน

เมื่อฉันเริ่ม MongoDB โดยใช้คำสั่ง

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

ฉันได้รับข้อผิดพลาดต่อไปนี้ ป้อนคำอธิบายภาพที่นี่

คำตอบ:


151

MongoDB ต้องการโฟลเดอร์เพื่อจัดเก็บฐานข้อมูล สร้างC:\data\db\ไดเร็กทอรี:

mkdir C:\data\db

จากนั้นเริ่ม MongoDB:

C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

บางครั้งมีC:\data\dbโฟลเดอร์อยู่แล้วเนื่องจากการติดตั้งก่อนหน้านี้ ดังนั้นหากmongod.exeไม่ได้ผลด้วยเหตุผลนี้คุณสามารถลบเนื้อหาทั้งหมดออกจากC:\data\dbโฟลเดอร์และดำเนินการmongod.exeอีกครั้ง


หากคุณเห็นรายละเอียดของข้อผิดพลาดมีบรรทัดที่ระบุว่าC:\data\db\ ไม่พบไดเร็กทอรี ใช้:mkdir C:\data\db
cespon

@cespon Gold tag .. : P
Aravind

ของฉันเป็นจริง/mongodb_data/db
Fabricio

ตรวจสอบให้แน่ใจว่าข้อมูลและไฟล์เป็นของผู้ใช้และกลุ่ม mongodb (บน linux)
PeterM

72

สำหรับผู้ใช้ macOS ในการแก้ไขปัญหานี้:

คุณต้องทำตามขั้นตอนต่อไปนี้:

สร้างไดเร็กทอรี“ db” นี่คือที่ที่ไฟล์ข้อมูล Mongo จะอยู่ คุณสามารถสร้างไดเร็กทอรีในตำแหน่งเริ่มต้นโดยเรียกใช้:

sudo mkdir -p /data/db

ตรวจสอบให้แน่ใจว่า/data/dbไดเร็กทอรีมีสิทธิ์ที่ถูกต้องโดยเรียกใช้:

sudo chown -R `id -un` /data/db

คุณพร้อมแล้วและคุณสามารถsudo mongodเริ่มต้นเซิร์ฟเวอร์ Mongo ได้

มันจะไม่ทำงานถ้าคุณทำงานอย่างเดียว mongod

แหล่ง


6
เหมือนกันใน ubuntu 16.04
Manoj Rana

ฉันได้รับmkdir: /data/db: Read-only file systemเมื่อเรียกใช้คำสั่งแรก ฉันจะแก้ไขปัญหานี้ได้อย่างไร ขอขอบคุณ.
LC

@LC เพิ่ม sudo ในคำสั่ง mkdir
Itay Bachar


15

ในการเปลี่ยนโฟลเดอร์ db เริ่มต้นC:\data\dbใน windows คำสั่งคือ:

--dbpath

ตัวอย่างเช่น:

\mongod --dbpath C:\myfolder

7

ผู้ใช้ Mac

แทนที่จะเรียกใช้ MongoDB ด้วย:

sudo mongod

คุณสามารถใช้mongodแทนได้หากคุณ:

  1. ค้นหาโฟลเดอร์ข้อมูลของ mongodb (โดยปกติคือ ~ / data)
  2. เพิ่มสิทธิ์ในการอ่าน + เขียนด้วย sudo chmod -R ugo+rw data

หากคุณจำเป็นต้องใช้sudoเมื่อเรียกใช้ mongodb ( sudo mongod) นั่นหมายความว่าคุณไม่มีสิทธิ์อ่านและเขียนในโฟลเดอร์ข้อมูล mongodb


1
ขอบคุณสำหรับสิ่งนี้. ฉันต้องเพิ่มสิทธิ์ในการอ่าน + เขียนถึง / data ฉันไม่เข้าใจว่าฉันทำอะไรผิด แต่ฉันได้ตั้งค่าโฟลเดอร์ข้อมูลของฉันเป็น ~ / Applications / mongodb / data
vinsentos

3

โปรดทำตามขั้นตอนต่อไปนี้:

  1. อย่างที่เพื่อนคนอื่น ๆ กล่าวถึงคุณควรสร้างไดเร็กทอรีก่อนเพื่อให้ข้อมูลฐานข้อมูลของคุณถูกจัดเก็บ โฟลเดอร์นี้อาจมีลักษณะดังนี้:

    C: \ mongo-data

  2. จากบรรทัดคำสั่งนำทางไปยังตำแหน่งที่คุณติดตั้ง mongodb และตำแหน่งที่ mongod.exe อยู่ ในกรณีของฉันเส้นทางแบบเต็มคือ:

    C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin

  3. จากที่นี่ให้เรียกใช้ mongod.exe และส่งเส้นทางไปยังโฟลเดอร์ที่คุณสร้างในขั้นตอนที่หนึ่งโดยใช้แฟล็ก --dbpath ดังนี้:

    mongod.exe --dbpath "C: \ mongo-data"

โปรดทราบ : หากคุณใช้ windows จำเป็นต้องใช้เครื่องหมายอัญประกาศคู่ ("") ในด้านบนเพื่อให้ทำงานได้อย่างถูกต้อง

ด้วยวิธีนี้คุณจะได้รับสิ่งต่อไปนี้:

2017-06-14T12:45:59.892+0430 I NETWORK  [thread1] waiting for connections on port 27017

หากคุณใช้เครื่องหมายคำพูดเดี่ยว ('') บน windows คุณจะได้รับ:

2017-06-14T01:13:45.965-0700 I CONTROL  [initandlisten] shutting down with code:100

หวังว่าจะช่วยแก้ไขปัญหาได้


2

สำหรับผู้ใช้ macOS ให้ดูแลปัญหาด้านล่าง:

หากคุณติดตั้ง MongoDB Community บน macOS โดยใช้. tgz Tarball

(( ตั้งแต่ macOS 10.15 Catalina Apple จำกัด การเข้าถึงไดเรกทอรีข้อมูลเริ่มต้นของ MongoDB ของ / data / db บน macOS 10.15 Catalina คุณต้องใช้ไดเรกทอรีข้อมูลอื่นเช่น / usr / local / var / mongodb ))

คุณสามารถแก้ไขได้ดังต่อไปนี้:

(MacOS Catalina เป็นต้นไป)

Apple สร้าง Volume ใหม่ใน Catalina เพื่อความปลอดภัย หากคุณใช้ Catalina คุณต้องสร้างโฟลเดอร์ / data / db ใน System / Volumes / Data

ใช้คำสั่งนี้:

sudo mkdir -p /System/Volumes/Data/data/db

จากนั้นใช้คำสั่งนี้เพื่อให้สิทธิ์:

sudo chown -R `id -un` /System/Volumes/Data/data/db

สิ่งนี้จะแทนที่ปกติ

sudo mkdir -p /data/db

ตรวจสอบให้แน่ใจว่าไดเร็กทอรี / data / db มีสิทธิ์ที่ถูกต้องโดยรัน:

sudo chown -R `id -un` /data/db

เมื่อคุณเสร็จสิ้นและเริ่ม mongoDB คุณสามารถใช้สิ่งต่อไปนี้ในเทอร์มินัล:

sudo mongod --dbpath /System/Volumes/Data/data/db

1

ในการเรียกใช้ Mongo DB demon ด้วยmongodคำสั่งคุณควรมีไดเร็กทอรีฐานข้อมูลคุณอาจต้องรัน:

mkdir C:\data\db

นอกจากนี้ MongoDB ต้องมีสิทธิ์การเขียนสำหรับไดเร็กทอรีนั้นหรือควรรันด้วยสิทธิ์ superuser เช่นsudo mongod.


1

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามเริ่ม mongodb (บน mac os)

"shutting down with code:100"

ฉันใช้คำสั่งต่อไปนี้:

./mongod --dbpath=~/mongo-data

การแก้ไขสำหรับฉันคือฉันไม่ต้องการเครื่องหมาย "=" และนี่เป็นสาเหตุของข้อผิดพลาด ดังนั้นฉันจึงทำ

./mongod --dbpath ~/mongo-data

แค่อยากจะโยนสิ่งนี้ออกไปเพราะข้อผิดพลาดไม่ได้ระบุว่าเป็นปัญหา ฉันเกือบจะลบเนื้อหาของไดเร็กทอรี ~ / mongo-data เพื่อดูว่าช่วยได้หรือไม่ ดีใจที่ฉันจำได้ว่า cli args บางครั้งไม่ใช้เครื่องหมาย "="


1

ก่อนอื่นคุณต้องสร้างไดเร็กทอรีข้อมูลที่ MongoDB เก็บข้อมูล พา ธ ไดเร็กทอรีข้อมูลเริ่มต้นของ MongoDB คือพา ธ \ data \ db สัมบูรณ์บนไดรฟ์ที่คุณเริ่มต้น MongoDB

หากคุณติดตั้งในไดรฟ์ C: / คุณต้องสร้างไดเร็กทอรี data \ db สำหรับการทำคำสั่ง run ใน cmd

C:\>mkdir data\db

ในการเริ่มต้น MongoDB ให้เรียกใช้ mongod.exe

"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --dbpath="c:\data\db"

อ็อพชัน --dbpath ชี้ไปที่ไดเร็กทอรีฐานข้อมูลของคุณ ป้อนคำอธิบายภาพที่นี่

เชื่อมต่อกับ MongoDB

"C:\Program Files\MongoDB\Server\4.2\bin\mongo.exe"

เพื่อตรวจสอบการทำงานทั้งหมดที่ดี:

show dbs

ป้อนคำอธิบายภาพที่นี่


1

1. หากแสดงข้อผิดพลาด (ปิดด้วยรหัส 100) แสดงว่าไม่พบตำแหน่งที่ต้องการของไฟล์

1.a หากอยู่ก่อน macOS Catalina ให้สร้างไดเร็กทอรีด้วย sudo mkdir -p / data / db และให้สิทธิ์ในการใช้งาน
sudo chown -Rid -un / data / db

1.b ถ้าเป็น macOS Catalina เป็นต้นไปให้สร้าง sudo mkdir -p / System / Volumes / data / db และให้สิทธิ์ sudo chown -R id -un / System / Volumes / data / db

2. การเริ่มต้นบริการชง mongo db เรียกใช้ mongodb-community

3. พิมพ์ mongod หรือ mongod --dbpath / System / Volumes / Data / data / db

4. และหาก mongod แสดงข้อผิดพลาด (ปิดด้วยรหัส 48) นั้น
หมายความว่ามีการใช้พอร์ตอยู่แล้วคุณจึงสามารถทำสองสิ่งได้

4.a ไม่ว่าคุณจะเปลี่ยนพอร์ตของ mongod โดยระบุพอร์ต
หมายเลข mongod --dbpath / System / Volumes / Data / data / db— พอร์ต 27018

4.b หรือคุณสามารถฆ่ากระบวนการที่พอร์ตนั้นได้โดยค้นหากระบวนการโดย sudo lsof -i: 27017 จากนั้นฆ่าโดยคำสั่ง
kill -9

5. ทำซ้ำขั้นตอนที่ 2 และ 3


0

ในMacOS : -

หากคุณลืมระบุเส้นทางของฐานข้อมูลที่สร้างไว้ก่อนหน้านี้ในขณะที่เรียกใช้เซิร์ฟเวอร์ mongo ข้อผิดพลาดข้างต้นจะปรากฏขึ้น

sudo ./mongod --dbpath ../../mongo-data/

ข้อมูลอ้างอิง

หมายเหตุ: - ./mongod && ../../mongo-data เป็นเส้นทางสัมพัทธ์ ดังนั้นคุณสามารถหลีกเลี่ยงได้โดยการกำหนดค่าในตัวแปรสภาพแวดล้อม

ข้อมูลอ้างอิง


0

สำหรับ windowsฉันมีปัญหาเดียวกัน

การแก้ไขคือ - ฉันต้องเรียกใช้บรรทัดคำสั่งในฐานะผู้ดูแลระบบ


1
ฉันขอแนะนำให้เปลี่ยนคำตอบสำหรับสิ่งนี้: "หากคุณมีปัญหานี้ใน Windows ตรวจสอบให้แน่ใจว่าคุณกำลังเรียกใช้บรรทัดคำสั่งในฐานะผู้ดูแลระบบ"
Filnor

0

หากคุณมีไดเร็กทอรีอยู่แล้วให้ตรวจสอบสิทธิ์ของ dir หรือลองรีสตาร์ท mongo ด้วย sudo บริการชง sudo เริ่มต้น mongodb


0

ในกรณีของฉันฉันได้รับข้อผิดพลาดที่คล้ายกันและเกิดขึ้นเนื่องจากฉันเรียกใช้ mongod กับผู้ใช้รูทและนั่นได้สร้างไฟล์บันทึกที่เข้าถึงได้โดยรูทเท่านั้น ฉันสามารถแก้ไขได้โดยเปลี่ยนความเป็นเจ้าของจาก root เป็นผู้ใช้ที่คุณเรียกใช้ mongod จากปกติ ล็อกไฟล์อยู่ใน / var / lib / mongodb / journal /


0

ฉันใช้ Virtualbox ตรวจสอบ VM ของคุณ

docker-machine ssh

df -h

ดูที่ dev / sda1 หากคุณไม่มีพื้นที่ว่างอาจเนื่องมาจากรูปภาพหรือคอนเทนเนอร์จำนวนมาก คุณสามารถลบออกโดยใช้ "docker rm" และ "docker rmi"


0

นอกจากนี้รหัสทางออกนี้จะได้รับหากคุณกำลังเปลี่ยนเวอร์ชัน MongoDB และไดเร็กทอรีข้อมูลเข้ากันไม่ได้เช่นเมื่อมีการดาวน์เกรด ย้ายไดเร็กทอรีเก่าไปที่อื่นและสร้างไดเร็กทอรีใหม่ (ตามคำแนะนำที่ให้ไว้ในคำตอบอื่น ๆ )


0

Aravind

มันเกิดขึ้นกับฉันด้วยเพราะฉันหยุด MongoDB โดย Task Manager

การสร้างโฟลเดอร์C: \ data \ dbและเริ่มต้น MongoDB ที่C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin \ mongod.exeงานได้สำหรับฉันตามที่ cespon แนะนำ แต่ MongoDB ไม่แสดงฐานข้อมูลใด ๆ ของฉัน สร้างไว้ก่อนหน้านี้

จากนั้นลบโฟลเดอร์C: \ data \ dbและซ่อมแซมการติดตั้งด้วยโปรแกรมติดตั้ง MongoDBฉันกู้คืนข้อมูลของฉันและเริ่มต้น MongoDB ตามปกติ

(ฉันใหม่มากกับ MongoDB แต่มันช่วยฉันแก้ปัญหานี้และกู้คืนอาจดูตัวอย่างข้อมูล)


0

พิมพ์ mongod และได้รับข้อผิดพลาด

ข้อผิดพลาด:

ข้อยกเว้นใน initAndListen: NonExistentPath: ไม่พบไดเร็กทอรีข้อมูล / data / db, การยุติ

ปิดตัวลงด้วยรหัส 100

จากนั้นลองใช้ (สร้างข้อมูลและโฟลเดอร์ฐานข้อมูลโดยได้รับอนุญาตทั้งหมด)

mongod --dbpath = / data

ใช้แท็บใหม่และพิมพ์ mongo

> ใช้ dbs

หากคุณยังคงประสบปัญหาคุณสามารถตรวจสอบ mac catalina: ( https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x-tarball/ )

สำหรับ windows: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows-unattended/

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