ฉันแก้ไขไฟล์กำหนดค่า MongoDB เพื่อเก็บข้อมูล/home/user/data/mongod
ไว้
แต่ข้อมูลยังถูกเขียนไปยังไดเรกทอรีเก่าตามที่คาดคะเนเนื่องจากสิทธิ์ในโฟลเดอร์ใหม่ไม่ได้รับอนุญาตฉันจะให้สิทธิ์ MongoDB ที่จำเป็นสำหรับไดเรกทอรีนั้นได้อย่างไร
ฉันแก้ไขไฟล์กำหนดค่า MongoDB เพื่อเก็บข้อมูล/home/user/data/mongod
ไว้
แต่ข้อมูลยังถูกเขียนไปยังไดเรกทอรีเก่าตามที่คาดคะเนเนื่องจากสิทธิ์ในโฟลเดอร์ใหม่ไม่ได้รับอนุญาตฉันจะให้สิทธิ์ MongoDB ที่จำเป็นสำหรับไดเรกทอรีนั้นได้อย่างไร
คำตอบ:
ในการเปลี่ยนตำแหน่งที่ MongoDB ใช้ในการจัดเก็บข้อมูลคุณต้อง:
/etc/mongodb.conf
และเปลี่ยนบรรทัดdbpath=/var/lib/mongodb
ให้เป็นเส้นทางที่คุณต้องการเช่นdbpath=/home/user/data/mongodb
mongodb
ผู้ใช้สามารถเขียนได้เช่นchown $USER -R /home/user/data/mongodb
sudo service mongodb restart
โปรดทราบว่าหากคุณมีข้อมูลใด ๆ ในตำแหน่งเดิมที่คุณต้องการเก็บไว้คุณจะต้องหยุดบริการ MongoDB ก่อนย้ายไฟล์ด้วยตนเองจากนั้นเริ่มบริการอีกครั้ง
เพื่อหยุดการใช้เซิร์ฟเวอร์ MongoDB sudo service mongodb stop
/var/lib/mongodb
คุณต้องรีสตาร์ท daemon เพื่อให้การเปลี่ยนแปลงมีผล
sudo service mongodb restart
หากคุณเริ่มต้น MongoDB จากบรรทัดคำสั่งคุณสามารถใช้--dbpath
อาร์กิวเมนต์:
mkdir mydata && mongod --dbpath mydata
คุณอาจทำงานเป็นปัญหาบางอย่างที่เกี่ยวข้องกับ "แฟ้มที่มีอยู่" หรือบางสิ่งบางอย่างมันเป็นข้อ จำกัด ที่รู้จักกันดีของ MongoDB มากขึ้นเกี่ยวกับเรื่องนี้ที่นี่ เพียงแค่เปลี่ยนดิสก์ไดรฟ์และทดสอบว่าตอนนี้คุณไม่มีปัญหานั้นอีกแล้ว
ฉันพบปัญหาเดียวกันวันนี้และฉันแก้ไขปัญหาโดยใช้ขั้นตอนต่อไปนี้
แก้ไขไฟล์ mongod.conf และแก้ไขค่าตัวแปร dbPath
sudo -H gedit /etc/mongod.conf
จากนั้นใช้คำสั่งต่อไปนี้เพื่อเริ่มบริการ mongod
sudo mongod --dbpath "your db path"
ฉันพยายามเรียกใช้คำสั่งด้านบนโดยไม่มีsudo
และฉันพบข้อผิดพลาด ดังนั้นใช้sudo
เพื่อเรียกใช้คำสั่ง
mv / var / lib / mongodb (ไดเรกทอรีที่คุณบันทึกข้อมูล) ไปที่ / path และ chown mondodb: mongodb / path (ไดเรกทอรีที่คุณต้องการบันทึกข้อมูล)
แก้ไข /etc/mongod.conf
บริการ mongod เริ่มต้นใหม่ (หากไม่สามารถเชื่อมต่อตรวจสอบ / เส้นทางหากไม่มี mongod.lock ถ้ามีอยู่ให้ลบออกแล้วเริ่มใหม่อีกครั้ง)