Tôi đang cố gắng tạo một thư mục mới trong thư mục chính
Đã thử tất cả các loại ví dụ
sudo mkdir /data/db
sudo mkdir -p /data/db
Tôi tiếp tục nhận được
mkdir: / data: Hệ thống tệp chỉ đọc
Tôi đang cố gắng tạo một thư mục mới trong thư mục chính
Đã thử tất cả các loại ví dụ
sudo mkdir /data/db
sudo mkdir -p /data/db
Tôi tiếp tục nhận được
mkdir: / data: Hệ thống tệp chỉ đọc
Câu trả lời:
Nếu bạn có Mac và cập nhật lên Catalina thì thư mục gốc không còn có thể ghi được nữa.
Tôi vừa thay đổi thư mục ở một nơi khác.
Hiện đang sử dụng lệnh này
mongod --dbpath=/Users/user/data/db
từ tài liệu chính thức https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
cài đặt homebrew và chạy các lệnh sau
sudo chown -R $(whoami) $(brew --prefix)/*
sau đó
brew tap mongodb/brew
sau đó
brew install mongodb-community@4.2
và
brew services start mongodb-community
hoặc là
mongod --config /usr/local/etc/mongod.conf
sau đó
ps aux | grep -v grep | grep mongod
và
mongo
để xác minh bạn có thể chạy show dbs
trong trình bao mongo
Với bản cập nhật macOS Catalina mới, thư mục /data/db
sẽ trở thành chỉ đọc, bạn không thể sửa đổi nó. Làm theo quy trình này để tạo DB trong một thư mục khác:
Thay đổi mongod
thư mục:
sudo mongod --dbpath /System/Volumes/Data/data/db
Đặt cho nó một bí danh để sử dụng nó như mongod
:
alias mongod="sudo mongod --dbpath /System/Volumes/Data/data/db"
Chỉ cần nhập mongod
thiết bị đầu cuối của bạn, nó sẽ hoạt động.
Thêm => Nếu bạn cần cấp cho nó quyền người dùng hiện tại, hãy sử dụng dòng mã này:
sudo chown -R $(whoami) /System/Volumes/Data/data/db
(Chỉ để biết thông tin -> $(whoami)
chỉ là một biến trả về người dùng hiện tại của bạn)
Để thực hiện thay đổi vĩnh viễn đường dẫn của db
thư mục mongod .
Sau những tài liệu này, họ nói đại khái điều này. Nếu mongod được bắt đầu với dịch vụ bia:
$ brew services start mongodb-community@4.2
Nó sẽ sử dụng tệp cấu hình tại đường dẫn /usr/local/etc/mongod.conf
Để khắc phục điều này, hãy chỉnh sửa tệp cấu hình:
$ vim /usr/local/etc/mongod.conf
Và thay đổi dbPath
ví dụ thành thư mục chính của bạn như sau:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /Users/<username>/data/db
net:
bindIp: 127.0.0.1
Lưu tệp và khởi động lại mongod với brew:
$ brew services restart mongodb-community@4.2
Đây là những gì đã làm việc cho tôi khi tôi đang trải qua một khóa học Udemy: 1. Cài đặt HomeBrew bằng cách nhập nó vào thiết bị đầu cuối của bạn
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Di chuyển thư mục / data / db cũ của bạn (nếu bạn muốn sao lưu dbs hiện tại của mình) vào một thư mục không phải gốc và tiến hành bước tiếp theo
Chạy trong Terminal a) brew uninstall mongodb
b) Nếu cần chạy brew uninstall --force mongodb
c) brew tap mongodb/brew
d) brew install mongodb-community
e)brew services start mongodb/brew/mongodb-community
Tất cả những gì bạn cần bây giờ là chạy mongo trong Terminal và bạn sẽ thấy biểu tượng mongo shell>.
Vui lòng cho tôi biết nếu điều này hoạt động;) Tôi đã mất gần 2 giờ để tìm ra nó, dựa trên bài viết này: /apple/362883/mongodb-doesnt-work- after-update-to -macos-catalina-10-15
Chúc mừng, Radu
Vì vậy, với macOS Catalina, Apple đã tạo một Khối lượng mới cho mục đích bảo mật. Nếu bạn đang sử dụng macOS Catalina, bạn sẽ cần tạo /data/db
thư mục trong System/Volumes/Data
.
Làm theo các lệnh này
sudo mkdir -p /System/Volumes/Data/data/db
sudo chown -R
id -un /System/Volumes/Data/data/db
Khởi động MongoDB
brew services run mongodb-community
Hãy tận hưởng
Đường dẫn mặc định cho Công thức cộng đồng mongodb
Ngoài việc cài đặt máy chủ MongoDB và các tệp nhị phân công cụ, công thức mongodb-community tạo ra:
sau đó nó làm việc cho tôi:
mkdir -p usr/local/var/mongodb/data/db
https://www.apple.com/macos/catalina/features/
macOS Catalina chạy trong một khối lượng hệ thống chỉ đọc, chuyên dụng - có nghĩa là nó hoàn toàn tách biệt với tất cả các dữ liệu khác và giúp cải thiện độ tin cậy của macOS.
# macOS Catalina, mkdir path
$ sudo mkdir -p /System/Volumes/Data/data/db
# give permissions
$ sudo chown -R `id -un` /System/Volumes/Data/data/db
# macOS 10.14.x -
$ sudo mkdir -p /data/db
# macOS 10.15.x +
$ sudo mkdir -p /System/Volumes/Data/data/db
https://discussions.apple.com/thread/250720711
Với macOS Catalina, bạn không còn có thể lưu trữ tệp hoặc dữ liệu trong ổ đĩa hệ thống chỉ đọc, cũng như không thể ghi vào thư mục "gốc" (/) từ dòng lệnh, chẳng hạn như với Terminal.
Bạn không thể tạo một /data/
thư mục. Điều đó được dành riêng cho hệ thống tệp APFS. Kiểm tra blog của Bombich về vấn đề này.
Tôi không hiểu tại sao Apple lại làm như vậy .. Vì vậy, bây giờ, chúng tôi không thể có bất kỳ thư mục cấp gốc nào ngoài thư mục của họ? Điều này không có ý nghĩa gì và những người tạo với đặc quyền root những thư mục đó biết họ đang làm gì
Phiên bản Mac Catalina đã làm cho thư mục gốc không thể ghi được nữa.
Brew có một phiên bản cập nhật của mongodb để sử dụng một đường dẫn mới (do chính nó tạo ra) /usr/local/var/mongodb
và việc làm theo các hướng dẫn sau sẽ khắc phục được sự cố:
Hướng dẫn cài đặt mongodb-community-edition cập nhật
brew install mongodb-community@VERSION
trong đó VERSION đầu tiên có bản sửa lỗi là 4.2
Tôi tạo một ý chính với các bước đơn giản để cài đặt và chạy mongodb trên catalina
# install homebrew (https://brew.sh/) and run the following commands
sudo chown -R $(whoami) $(brew --prefix)/*
brew tap mongodb/brew
brew install mongodb-community@4.2
## --- aliases to set in your zshrc file
# open your zshrc file
open ~/.zshrc
# copy and paste shorcuts in the end of the file
alias mongod='brew services run mongodb-community'
alias mongod-start='brew services start mongodb-community' #will start MongoDB automatically when you login into your Macbook
alias mongod-status='brew services list'
alias mongod-stop='brew services stop mongodb-community'
# restart your terminal
# type mongod in your terminal for run service & mongod-stop for finish it
# test your mongodb connection with
mongo
show dbs
https://gist.github.com/sturmenta/cf19baa91b1d79d8ae2b305fb7e1f799
Để thêm vào những gì David Buck đã viết ở đây , trước tiên bạn phải thực sự tạo thư mục. Bạn có thể làm điều đó với:
sudo mkdir / Hệ thống / Khối lượng / Dữ liệu / dữ liệu / db
Nếu bạn gặp lỗi này:
"Lỗi phân tích cú pháp dòng lệnh: tùy chọn không được công nhận '--dbpath / Hệ thống / Khối lượng / Dữ liệu / dữ liệu / db' hãy thử 'mongod --help' để biết thêm thông tin"
sau khi tạo bí danh, đó chỉ là do David Buck (trong khi đưa ra nhận xét thực sự hữu ích) đã bỏ sót một khoảng trống trong câu trả lời của mình.
Để khắc phục điều này, hãy nhập
unalias mongod
và sau đó gõ
alias mongod = "sudo mongod --dbpath / System / Volumes / Data / data / db"