MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mongod phàn nàn rằng không có thư mục / data / db

Bạn đã tạo thư mục không đúng chỗ

/ data / db có nghĩa là nó nằm ngay dưới thư mục gốc '/', trong khi bạn đã tạo 'data / db' (không có đầu /) có thể chỉ bên trong một thư mục khác, chẳng hạn như thư mục '/ root'.

Bạn cần tạo thư mục này làm thư mục gốc

Bạn cần sử dụng sudo , ví dụ. sudo mkdir -p /data/db

Hoặc bạn cần thực hiện su - để trở thành superuser, rồi tạo thư mục với mkdir -p /data/db

Lưu ý:

MongoDB cũng có một tùy chọn để bạn có thể tạo thư mục dữ liệu ở một vị trí khác, nhưng nhìn chung không phải là một ý kiến ​​hay, bởi vì nó chỉ hơi phức tạp với những thứ như khôi phục DB, vì bạn luôn phải chỉ định đường dẫn db theo cách thủ công. Tôi không khuyên bạn nên làm điều đó.

Chỉnh sửa:

thông báo lỗi bạn nhận được là "Không thể tạo / mở tệp khóa:/data/db/mongod.lock errno:13 Quyền bị từ chối" . Thư mục bạn đã tạo dường như không có quyền và quyền sở hữu chính xác - nó cần được người dùng chạy quy trình MongoDB ghi được.

Để xem các quyền và quyền sở hữu của thư mục '/ data / db /', hãy làm như sau:(đây là giao diện của các quyền và quyền sở hữu)

$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/

Bên trái 'drwxr-xr-x' hiển thị các quyền cho Người dùng, Nhóm và Người khác.'Mongod mongod 'cho biết ai sở hữu thư mục và nhóm nào thuộc về thư mục. Cả hai đều được gọi là' mongod 'trong trường hợp này.

Nếu thư mục '/ data / db' của bạn không có quyền và quyền sở hữu ở trên, hãy thực hiện việc này :

Trước tiên, hãy kiểm tra người dùng nào và nhóm người dùng mongo của bạn có:

# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false

Bạn nên có một mục nhập cho mongod trong / etc / passwd, vì nó là một daemon.

sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db    # using the user-id , group-id

Bạn cũng có thể sử dụng tên người dùng và tên nhóm, như sau:(có thể tìm thấy chúng trong / etc / passwd và / etc / group)

sudo chown -R mongod:mongod /data/db 

điều đó sẽ làm cho nó hoạt động ..

Trong phần bình luận bên dưới, một số người đã sử dụng cái này:

sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db

hoặc

sudo chown -R $USER /data/db 
sudo chmod -R go+w /data/db

Điểm bất lợi là $ USER là một tài khoản có trình bao đăng nhập, lý tưởng nhất là không nên có trình bao vì lý do bảo mật, đó là lý do tại sao bạn thấy / bin / false trong grep của tệp mật khẩu ở trên.

Kiểm tra tại đây để hiểu rõ hơn về ý nghĩa của các quyền trong thư mục:

http://www.perlfect.com/articles/chmod.shtml

Cũng có thể xem một trong những hướng dẫn bạn có thể tìm thấy qua Google:"UNIX cho người mới bắt đầu"



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để chia sẻ bộ sưu tập MongoDB giữa các ứng dụng Meteor?

  2. 'process.nextTick (function () {throw err;})' - Undefined không phải là một hàm (mongodb / mongoose)

  3. Cài đặt Máy khách / Trình điều khiển PHP 7 MongoDB?

  4. Cách kết nối với triển khai MongoDB của bạn bằng Robo 3T GUI

  5. MongoDB có thể sử dụng một chỉ mục khi kiểm tra sự tồn tại của một trường có toán tử $ tồn tại không?