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

mongodb 3.4.3 Quyền bị từ chối wiredtiger_kv_engine.cpp 267 lỗi với ubuntu 16

Tôi đang gặp sự cố khi khởi chạy mongod như một dịch vụ:Có thể nó hoạt động như thế nào khi tôi thực hiện sudo mongod -f /etc/mongod.conf nhưng khi khởi chạy nó với dịch vụ sudo mongod start, tôi gặp lỗi trong nhật ký

sudo lệnh bắt đầu mongod với root quyền (hay còn gọi là quyền truy cập siêu người dùng). Nếu bạn chạy mongod như một dịch vụ, người dùng và nhóm được định cấu hình trong định nghĩa dịch vụ (mongodb cho cả hai trong ví dụ của bạn).

Không cần chạy mongod xử lý dưới dạng root người dùng và điều này thực sự không được khuyến khích theo thông lệ bảo mật phổ biến của Nguyên tắc ít đặc quyền nhất.

Nếu bạn muốn kiểm tra cấu hình từ dòng lệnh, bạn có thể sử dụng sudo để chạy với một người dùng được chỉ định thay vì người dùng (gốc) mặc định.

Ví dụ:

sudo -u mongodb mongod -f /etc/mongod.conf 

Nói chung, tốt nhất là sử dụng cấu hình dịch vụ thay vì chạy mongod thủ công. Với lệnh gọi thủ công, bạn cũng sẽ phải nhớ bao gồm các tham số như đường dẫn tệp cấu hình (vì không có đường dẫn cấu hình mặc định). Không có tệp cấu hình, mongod cũng sử dụng các tùy chọn mặc định như dbPath trong tổng số /data/db .

Khẳng định:28595:13:Quyền bị từ chối src / mongo / db / storage / wiredtiger / wiredtiger_kv_engine.cpp 267

Nguyên nhân có thể gây ra lỗi quyền của bạn là đã khởi động mongod trước đó làm root người dùng. Một số thư mục và tệp hiện có thể thuộc sở hữu của người dùng root, vì vậy mongodb người dùng không thể truy cập những. Lỗi cụ thể của bạn liên quan đến việc truy cập các tệp trong thư mục dữ liệu (tức là storage.dbPath đã định cấu hình trong mongod.conf ).

Giả sử bạn chưa thay đổi các đường dẫn mặc định trong mongod.conf của mình , bạn sẽ có thể điều chỉnh đệ quy các quyền để phù hợp với những gì mongod.service định nghĩa mong đợi.

Trước tiên, hãy đảm bảo rằng bạn đã dừng mongod của mình ví dụ nếu nó hiện đang chạy.

Sau đó, điều chỉnh đệ quy quyền cho người dùng và nhóm dự kiến:

# storage.dbPath
sudo chown -R mongodb:mongodb /var/lib/mongodb

# systemLog.path
sudo chown -R mongodb:mongodb /var/log/mongodb

Bây giờ bạn có thể bắt đầu mongod như một dịch vụ. Nếu dịch vụ không khởi động được, cần có thêm chi tiết trong mongod tệp nhật ký (giả sử tệp nhật ký có thể ghi được bởi mongodb người sử dụng dịch vụ).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cài đặt MongoDB Community Edition 4.0 trên Linux

  2. Mongodb:không kết nối được với máy chủ trong lần kết nối đầu tiên

  3. Tìm tài liệu có mảng không chứa giá trị cụ thể

  4. Cách thay thế chuỗi trong tất cả các tài liệu trong Mongo

  5. Cập nhật các mảng lồng nhau trong mongoDB qua mongo shell