Làm cách nào để thay đổi vị trí mà MongoDB sử dụng để lưu trữ dữ liệu của nó?


13

Tôi đã chỉnh sửa tệp cấu hình MongoDB để lưu trữ dữ liệu của nó /home/user/data/mongod.

Nhưng dữ liệu vẫn được ghi vào thư mục cũ, được cho là vì các quyền đối với thư mục mới không được cấp - làm cách nào tôi có thể cấp cho MongoDB các quyền cần thiết cho thư mục đó?


1
Làm thế nào bạn chỉnh sửa cấu hình của bạn? Tại sao bạn cho rằng đó là một vấn đề với các quyền? Tại sao bạn nghĩ rằng Mongo sử dụng thư mục mặc định thay vì ném lỗi? (Đây là một cách hỏi: bạn đã kiểm tra tệp nhật ký lỗi chưa?)
Andrea Corbellini

Câu trả lời:


28

Để thay đổi vị trí được MongoDB sử dụng để lưu trữ dữ liệu của nó, bạn cần phải:

  1. Chỉnh sửa /etc/mongodb.confvà thay đổi dòng dbpath=/var/lib/mongodbthành đường dẫn mà bạn mong muốn, ví dụ:dbpath=/home/user/data/mongodb
  2. Cập nhật các quyền của đường dẫn bạn đã chọn để cho phép mongodbngười dùng ghi vào đó, vdchown $USER -R /home/user/data/mongodb
  3. Khởi động lại dịch vụ MongoDB bằng cách chạy sudo service mongodb restart

Lưu ý rằng nếu bạn có bất kỳ dữ liệu nào ở vị trí cũ mà bạn muốn giữ, trước tiên bạn cần dừng dịch vụ MongoDB, di chuyển các tệp theo cách thủ công và sau đó khởi động lại dịch vụ.

Để dừng máy chủ MongoDB, hãy sử dụng sudo service mongodb stop


Những tập tin nào tôi cần phải di chuyển?
chovy

@chovy Các tập tin trong thư mục lưu trữ.
David Edwards

Tôi đã xóa tất cả mọi thứ trong/var/lib/mongodb
chovy

@chovy Sau đó, có lẽ bạn đã xóa tất cả dữ liệu của mình, nếu bạn có bất kỳ tệp nào và không có tệp nào bạn có thể di chuyển.
David Edwards

Yeah, được thôi. tôi không cần phải lưu nó. không chắc chắn nếu có tập tin phi dữ liệu tôi cần trong đó. rõ ràng không phải vì nó dường như vẫn hoạt động
chovy

1

Bạn cần khởi động lại daemon để các thay đổi có hiệu lực.

sudo service mongodb restart

Ti khởi động lại deamon tôi cung cấp cho bạn quá nhiều cách. Cách cũ: "etc / init.d / mongodb restart", cách mới: "sudo service mongodb restart"
Cyril ALFARO

1
Tôi khuyên bạn nên chỉnh sửa câu trả lời của bạn để bao gồm thông tin đó.
Eliah Kagan

1

Nếu bạn bắt đầu mongodb từ dòng lệnh, bạn có thể sử dụng --dbpathđối số: mkdir mydata && mongod --dbpath mydata Bạn có thể gặp phải một số vấn đề liên quan đến "tập tin tồn tại" hoặc một cái gì đó, đó là một hạn chế nổi tiếng của MongoDb, thêm về điều này ở đây . Chỉ cần thay đổi ổ đĩa và kiểm tra nếu bây giờ bạn không gặp vấn đề đó nữa.


0

mv the / var / lib / mongodb (thư mục bạn đã lưu dữ liệu) vào / path và chown mondodb: mongodb / path (thư mục bạn muốn lưu dữ liệu)

chỉnh sửa /etc/mongod.conf

Dịch vụ mongod restart (nếu không thể kết nối, hãy kiểm tra / path nếu không chứa mongod.lock, nếu nó tồn tại, hãy xóa nó và khởi động lại)


mongodb của nó: mongodb tôi đoán .. !!
Lakshman Pilaka
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.