ฉันติดตาม MongoDb Docsเพื่อตั้งค่า MongoDb แรกของฉัน
เมื่อฉันเริ่ม MongoDB โดยใช้คำสั่ง
C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe
ฉันติดตาม MongoDb Docsเพื่อตั้งค่า MongoDb แรกของฉัน
เมื่อฉันเริ่ม MongoDB โดยใช้คำสั่ง
C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe
คำตอบ:
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
อีกครั้ง
/mongodb_data/db
สำหรับผู้ใช้ macOS ในการแก้ไขปัญหานี้:
คุณต้องทำตามขั้นตอนต่อไปนี้:
สร้างไดเร็กทอรี“ db” นี่คือที่ที่ไฟล์ข้อมูล Mongo จะอยู่ คุณสามารถสร้างไดเร็กทอรีในตำแหน่งเริ่มต้นโดยเรียกใช้:
sudo mkdir -p /data/db
ตรวจสอบให้แน่ใจว่า/data/db
ไดเร็กทอรีมีสิทธิ์ที่ถูกต้องโดยเรียกใช้:
sudo chown -R `id -un` /data/db
คุณพร้อมแล้วและคุณสามารถsudo mongod
เริ่มต้นเซิร์ฟเวอร์ Mongo ได้
มันจะไม่ทำงานถ้าคุณทำงานอย่างเดียว mongod
mkdir: /data/db: Read-only file system
เมื่อเรียกใช้คำสั่งแรก ฉันจะแก้ไขปัญหานี้ได้อย่างไร ขอขอบคุณ.
ปัญหาเดียวกันบน Mac ของฉัน (โดยใช้ Brew) แก้ไขได้โดยใช้:
sudo mongod
ในการเปลี่ยนโฟลเดอร์ db เริ่มต้นC:\data\db
ใน windows คำสั่งคือ:
--dbpath
ตัวอย่างเช่น:
\mongod --dbpath C:\myfolder
ผู้ใช้ Mac
แทนที่จะเรียกใช้ MongoDB ด้วย:
sudo mongod
คุณสามารถใช้mongod
แทนได้หากคุณ:
sudo chmod -R ugo+rw data
หากคุณจำเป็นต้องใช้sudo
เมื่อเรียกใช้ mongodb ( sudo mongod
) นั่นหมายความว่าคุณไม่มีสิทธิ์อ่านและเขียนในโฟลเดอร์ข้อมูล mongodb
โปรดทำตามขั้นตอนต่อไปนี้:
อย่างที่เพื่อนคนอื่น ๆ กล่าวถึงคุณควรสร้างไดเร็กทอรีก่อนเพื่อให้ข้อมูลฐานข้อมูลของคุณถูกจัดเก็บ โฟลเดอร์นี้อาจมีลักษณะดังนี้:
C: \ mongo-data
จากบรรทัดคำสั่งนำทางไปยังตำแหน่งที่คุณติดตั้ง mongodb และตำแหน่งที่ mongod.exe อยู่ ในกรณีของฉันเส้นทางแบบเต็มคือ:
C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin
จากที่นี่ให้เรียกใช้ 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
หวังว่าจะช่วยแก้ไขปัญหาได้
สำหรับผู้ใช้ 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
ในการเรียกใช้ Mongo DB demon ด้วยmongod
คำสั่งคุณควรมีไดเร็กทอรีฐานข้อมูลคุณอาจต้องรัน:
mkdir C:\data\db
นอกจากนี้ MongoDB ต้องมีสิทธิ์การเขียนสำหรับไดเร็กทอรีนั้นหรือควรรันด้วยสิทธิ์ superuser เช่นsudo mongod
.
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามเริ่ม mongodb (บน mac os)
"shutting down with code:100"
ฉันใช้คำสั่งต่อไปนี้:
./mongod --dbpath=~/mongo-data
การแก้ไขสำหรับฉันคือฉันไม่ต้องการเครื่องหมาย "=" และนี่เป็นสาเหตุของข้อผิดพลาด ดังนั้นฉันจึงทำ
./mongod --dbpath ~/mongo-data
แค่อยากจะโยนสิ่งนี้ออกไปเพราะข้อผิดพลาดไม่ได้ระบุว่าเป็นปัญหา ฉันเกือบจะลบเนื้อหาของไดเร็กทอรี ~ / mongo-data เพื่อดูว่าช่วยได้หรือไม่ ดีใจที่ฉันจำได้ว่า cli args บางครั้งไม่ใช้เครื่องหมาย "="
ก่อนอื่นคุณต้องสร้างไดเร็กทอรีข้อมูลที่ 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. หากแสดงข้อผิดพลาด (ปิดด้วยรหัส 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
ในMacOS : -
หากคุณลืมระบุเส้นทางของฐานข้อมูลที่สร้างไว้ก่อนหน้านี้ในขณะที่เรียกใช้เซิร์ฟเวอร์ mongo ข้อผิดพลาดข้างต้นจะปรากฏขึ้น
sudo ./mongod --dbpath ../../mongo-data/
หมายเหตุ: - ./mongod && ../../mongo-data เป็นเส้นทางสัมพัทธ์ ดังนั้นคุณสามารถหลีกเลี่ยงได้โดยการกำหนดค่าในตัวแปรสภาพแวดล้อม
สำหรับ windowsฉันมีปัญหาเดียวกัน
การแก้ไขคือ - ฉันต้องเรียกใช้บรรทัดคำสั่งในฐานะผู้ดูแลระบบ
หากคุณมีไดเร็กทอรีอยู่แล้วให้ตรวจสอบสิทธิ์ของ dir หรือลองรีสตาร์ท mongo ด้วย sudo บริการชง sudo เริ่มต้น mongodb
ในกรณีของฉันฉันได้รับข้อผิดพลาดที่คล้ายกันและเกิดขึ้นเนื่องจากฉันเรียกใช้ mongod กับผู้ใช้รูทและนั่นได้สร้างไฟล์บันทึกที่เข้าถึงได้โดยรูทเท่านั้น ฉันสามารถแก้ไขได้โดยเปลี่ยนความเป็นเจ้าของจาก root เป็นผู้ใช้ที่คุณเรียกใช้ mongod จากปกติ ล็อกไฟล์อยู่ใน / var / lib / mongodb / journal /
ฉันใช้ Virtualbox ตรวจสอบ VM ของคุณ
docker-machine ssh
df -h
ดูที่ dev / sda1 หากคุณไม่มีพื้นที่ว่างอาจเนื่องมาจากรูปภาพหรือคอนเทนเนอร์จำนวนมาก คุณสามารถลบออกโดยใช้ "docker rm" และ "docker rmi"
นอกจากนี้รหัสทางออกนี้จะได้รับหากคุณกำลังเปลี่ยนเวอร์ชัน MongoDB และไดเร็กทอรีข้อมูลเข้ากันไม่ได้เช่นเมื่อมีการดาวน์เกรด ย้ายไดเร็กทอรีเก่าไปที่อื่นและสร้างไดเร็กทอรีใหม่ (ตามคำแนะนำที่ให้ไว้ในคำตอบอื่น ๆ )
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 แต่มันช่วยฉันแก้ปัญหานี้และกู้คืนอาจดูตัวอย่างข้อมูล)
พิมพ์ mongod และได้รับข้อผิดพลาด
ข้อผิดพลาด:
ข้อยกเว้นใน initAndListen: NonExistentPath: ไม่พบไดเร็กทอรีข้อมูล / data / db, การยุติ
ปิดตัวลงด้วยรหัส 100
จากนั้นลองใช้ (สร้างข้อมูลและโฟลเดอร์ฐานข้อมูลโดยได้รับอนุญาตทั้งหมด)
mongod --dbpath = / data
ใช้แท็บใหม่และพิมพ์ mongo
หากคุณยังคงประสบปัญหาคุณสามารถตรวจสอบ 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/
C:\data\db\
ไม่พบไดเร็กทอรี ใช้:mkdir C:\data\db