Đây là lỗi chính:
ngoại lệ trong initAndListen:NonExistingPath:Không tìm thấy thư mục dữ liệu / data / db., terminating
Catalina có một thay đổi bất ngờ:nó sẽ không cho phép thay đổi thư mục gốc (điều này cũng đã được thảo luận trong một chuỗi diễn đàn):
% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system
Thật không may, điều này không được ghi rõ ràng trong ghi chú phát hành Catalina của Apple, ngoài một đề cập ngắn gọn trong các tính năng của Catalina:
macOS Catalina chạy trong một ổ đĩa hệ thống chỉ đọc, chuyên dụng
Kể từ thư mục /data/db
được mã hóa là mặc định của MongoDB, cách giải quyết là chỉ định một dbpath
khác mà không nằm trên thư mục gốc. Ví dụ:
mongod --dbpath ~/data/db
Thao tác này sẽ đặt dữ liệu của MongoDB trong thư mục chính của bạn. Chỉ cần đảm bảo rằng đường dẫn ~/data/db
thực sự tồn tại.
Phương pháp thay thế
Một phương pháp thay thế là làm theo hướng dẫn tại Cài đặt phiên bản cộng đồng MongoDB trên macOS bằng cách tận dụng brew
:
brew tap mongodb/brew
brew install mongodb-community
Điều này sẽ tạo một số tệp bổ sung theo mặc định:
- tệp cấu hình (/usr/local/etc/mongod.conf)
- đường dẫn thư mục nhật ký (/ usr / local / var / log / mongodb)
- đường dẫn thư mục dữ liệu (/ usr / local / var / mongodb)
Để chạy mongod
bạn có thể:
-
Chạy lệnh theo cách thủ công từ dòng lệnh (có thể đặt bí danh này để thuận tiện):
mongod --config /usr/local/etc/mongod.conf
-
Chạy MongoDB dưới dạng một dịch vụ bằng cách sử dụng
brew services
. Lưu ý rằng điều này sẽ chạy MongoDB như một nút độc lập (không phải một tập hợp bản sao), vì vậy các tính năng phụ thuộc vào oplog, ví dụ:changestreams sẽ không hoạt động trừ khi bạn sửa đổimongod
tệp cấu hình:brew services start mongodb-community