โฟลเดอร์ฐานข้อมูล mongo อยู่ที่ไหนในระบบไฟล์


19

ฉันใช้ Ubuntu 16.04 ฉันได้ตั้งค่าฐานข้อมูลMongoDBแล้ว เมื่อฉันเริ่ม (ด้วยmongodคำสั่ง) มันบอกว่าฐานข้อมูลตั้งอยู่ที่/data/db( dbpath=/data/db)

ฐานข้อมูลทำงานได้ดี แต่ใน files explorer ฉันไม่พบโฟลเดอร์นั้น ฉันดูในComputerโฟลเดอร์และในโฟลเดอร์Home( Computer/home/<my name>) แล้ว

ฉันยังแสดงไฟล์และโฟลเดอร์ที่ซ่อนด้วย Ctrl + H

ฉันจะค้นหาโฟลเดอร์ฐานข้อมูลของฉันได้อย่างไร

คำตอบ:


24

คุณควรจะหาตำแหน่งในไฟล์กำหนดค่า: /etc/mongod.conf

grep dbPath /etc/mongod.conf

อ้างอิงจากmongodb เอกสาร :

เส้นทางเริ่มต้นคือ/data/dbไดเรกทอรี

โดยค่าเริ่มต้น MongoDB จะรับฟังการเชื่อมต่อจากไคลเอนต์บนพอร์ต 27017 และเก็บข้อมูลในไดเรกทอรี / data / db

หากdbPathตั้งค่าไว้ mongodb จะใช้ไดเรกทอรีที่ระบุโดยdbPath

หากคุณต้องการmongodในการจัดเก็บไฟล์ข้อมูลที่เส้นทางอื่นที่ไม่ใช่คุณสามารถระบุ/data/db ต้องมีอยู่ก่อนที่จะเริ่ม หากไม่มีอยู่ให้สร้างไดเรกทอรีและสิทธิ์เพื่อให้สามารถอ่านและเขียนข้อมูลไปยังพา ธ นี้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการอนุญาตดูเอกสารประกอบการรักษาความปลอดภัยdbPathdbPathmongodmongod


1
ฉันพบ /etc/mongod.conf (สังเกตว่าไม่มีตัวอักษร 'b') มีมันบอกว่า: storage: dbPath: / var / lib / mongodb และโฟลเดอร์นั้นดูเหมือนจะเป็นฐานข้อมูล นอกจากนี้ตัวแปรคือ dbPath (ตัวพิมพ์ใหญ่ 'P') แต่ทำไมเมื่อฉันเริ่ม mongod มันบอกว่า dbpath = / data / db?
croraf

@croraf - /data/dbเป็นค่าเริ่มต้นของเส้นทางหากdbPathมีการตั้งค่ามันแทนที่ค่านี้ โปรดทราบว่าในการใช้/data/dbเป็นเส้นทางจริงโฟลเดอร์ควรมีอยู่และมีสิทธิ์ / สิทธิ์ที่ถูกต้อง ดูคำตอบที่อัปเดตพร้อมลิงก์ไปยัง mongodb docs
Yaron

ขอบคุณ! ปัญหาคือคำสั่ง mongod เอาต์พุต "MongoDB ที่เริ่มต้น: pid = 2722 พอร์ต = 27017 dbpath = / data / db โฮสต์ 64- บิต = korisnik-Lenovo-Y520-15IKBN" ระบุว่า dbpath เป็น / data / db แม้ว่านี่อาจเป็นพา ธ เริ่มต้นคำสั่ง db start ควรระบุพา ธ ที่แท้จริงในกรณีของฉัน / var / lib / mongodb
croraf

2
@croraf /etc/mongod.confการกำหนดค่าจะใช้เฉพาะถ้าคุณเริ่มต้น MongoDB เป็นบริการmongod --config /etc/mongod.confหรืออย่างชัดเจนผ่านนี้ในบรรทัดคำสั่ง: หากคุณเริ่มmongodโดยไม่มีตัวเลือกใด ๆ ระบบ/data/dbจะใช้ค่าเริ่มต้นของ หากคุณเริ่มต้นmongodเป็นบริการบน Ubuntu dbPathจะเป็นไปตามที่ระบุใน/etc/mongod.conf( /var/lib/mongodbโดยค่าเริ่มต้น) โดยทั่วไปคุณต้องการจัดการ MongoDB เป็นบริการเพื่อให้แน่ใจว่ามีการใช้การกำหนดค่าที่สอดคล้องกันระหว่างการเรียกใช้
Stennie

@Stennie ใช่ดูเหมือนว่า mongod จะเริ่มในการบูทระบบปฏิบัติการ (สิ่งที่คุณเรียกว่า 'as a service') นี่ทำให้ฉันสับสน ฉันจะตรวจสอบวันนี้ แต่บางทีการใช้ mongod อาจทำให้เกิดข้อผิดพลาดว่าพอร์ตนั้นถูกเชื่อมโยงแล้ว
croraf

1

สำหรับคำถามข้างต้นถึงแม้ว่าพวกเขาจะได้ให้คำตอบไว้แล้ว แต่อนุญาตให้ฉันนำคำอธิบายนี้ไปด้วย:

เมื่อใช้ linux (Ubuntu) เมื่อคุณติดตั้ง mongodb จะมีการกำหนดค่าและเรียกใช้โดยอัตโนมัติตามค่าเริ่มต้น DBPath mongodb.confเริ่มต้นตั้งอยู่ใน เมื่อคุณดูไฟล์คุณจะเห็นบรรทัดต่อไปนี้:

   # Where to store the data
     bdpath=/var/lib/mongodb

ตอนนี้ขึ้นอยู่กับmongodb doc :

เส้นทางเริ่มต้นคือ/data/dbไดเรกทอรี[ควร] แต่ถ้าไม่มีโฟลเดอร์ mongodb จะเริ่มจากเส้นทางที่กำหนดในไฟล์ mongodb.conf

สิ่งที่ต้องทำ:

  1. หยุด Mongodb ของคุณ
  2. สร้างโฟลเดอร์ข้อมูลเริ่มต้นของคุณ
  3. เริ่ม mongodb: ครั้งนี้มันจะเริ่มจากข้อมูลของคุณที่สร้างขึ้น

0

นั่นเป็นเพราะ "รูท" ที่คุณเห็นไม่ใช่รูทจริงซึ่งเป็นรูทของบ้านของคุณบน File explorer เมื่อคุณอยู่ในหน้าแรกของ 'รูท' กดbackspaceเพื่อไปยังโฟลเดอร์หลัก


-1

ลองพิมพ์file:///data/db/ในเบราว์เซอร์ (chrome หรือ fire-fox) คุณจะสามารถดูไฟล์และคอลเลกชันได้หากคุณmongodbติดตั้งในระบบ แต่ทั้งหมดจะถูกเข้ารหัสคุณไม่สามารถอ่านได้ในเครื่องมือแก้ไข

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