ฉันพยายามสร้างโฟลเดอร์ใหม่ในไดเร็กทอรีหลัก
ลองใช้ทุกตัวอย่าง
sudo mkdir /data/db
sudo mkdir -p /data/db
ฉันรับไปเรื่อย ๆ
mkdir: / data: ระบบไฟล์แบบอ่านอย่างเดียว
ฉันพยายามสร้างโฟลเดอร์ใหม่ในไดเร็กทอรีหลัก
ลองใช้ทุกตัวอย่าง
sudo mkdir /data/db
sudo mkdir -p /data/db
ฉันรับไปเรื่อย ๆ
mkdir: / data: ระบบไฟล์แบบอ่านอย่างเดียว
คำตอบ:
หากคุณมี Mac และอัปเดตเป็น Catalina มากกว่าโฟลเดอร์รากจะไม่สามารถเขียนได้อีกต่อไป
ฉันเพิ่งเปลี่ยนไดเร็กทอรีที่อื่น
ตอนนี้ใช้คำสั่งนี้แล้ว
mongod --dbpath=/Users/user/data/db
จากเอกสารอย่างเป็นทางการhttps://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
ติดตั้งhomebrewและรันคำสั่งต่อไปนี้
sudo chown -R $(whoami) $(brew --prefix)/*
แล้ว
brew tap mongodb/brew
แล้ว
brew install mongodb-community@4.2
และ
brew services start mongodb-community
หรือ
mongod --config /usr/local/etc/mongod.conf
แล้ว
ps aux | grep -v grep | grep mongod
และ
mongo
เพื่อตรวจสอบว่าคุณสามารถรันshow dbs
ใน mongo shell ได้
mongodb-community
ไม่ได้ติดตั้งสูตร คุณต้องเปิดตัว: บริการชงเริ่ม mongodb/brew/mongodb-community@4.2
ด้วยการอัปเดต macOS Catalina ใหม่โฟลเดอร์/data/db
จะกลายเป็นแบบอ่านอย่างเดียวคุณไม่สามารถแก้ไขได้ ทำตามขั้นตอนนี้เพื่อสร้างฐานข้อมูลในโฟลเดอร์อื่น:
เปลี่ยนmongod
ไดเร็กทอรี:
sudo mongod --dbpath /System/Volumes/Data/data/db
ให้นามแฝงเพื่อใช้เป็นmongod
:
alias mongod="sudo mongod --dbpath /System/Volumes/Data/data/db"
เพียงพิมพ์mongod
เทอร์มินัลของคุณก็ควรใช้งานได้
พิเศษ => หากคุณต้องการให้สิทธิ์ผู้ใช้ในปัจจุบันให้ใช้รหัสบรรทัดนี้:
sudo chown -R $(whoami) /System/Volumes/Data/data/db
(สำหรับข้อมูล -> $(whoami)
เป็นเพียงตัวแปรที่ส่งกลับผู้ใช้ปัจจุบันของคุณ)
sudo mkdir -p /System/Volumes/Data/data/db
sudo chown -R `id -un` /System/Volumes/Data/data/db
ไม่แน่ใจว่ามีโฟลเดอร์เหล่านี้อยู่แล้ว แต่รวมคำตอบของ @ xgqfrms เข้ากับโฟลเดอร์นี้ ขอบคุณมากสำหรับสิ่งนี้ทำให้ฉันแทบคลั่ง
เพื่อทำการเปลี่ยนแปลงเส้นทางของdb
โฟลเดอร์mongod อย่างถาวร
ต่อไปนี้เอกสารเหล่านี้ที่พวกเขาพูดประมาณนี้ หาก mongod เริ่มต้นด้วยบริการชง:
$ brew services start mongodb-community@4.2
มันจะใช้ไฟล์ config ที่ path /usr/local/etc/mongod.conf
ในการแก้ไขปัญหานี้ให้แก้ไขไฟล์ config:
$ vim /usr/local/etc/mongod.conf
และเปลี่ยนdbPath
เช่นเป็นโฮมไดเร็กทอรีของคุณดังนี้:
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
บันทึกไฟล์และรีสตาร์ท mongod ด้วย brew:
$ brew services restart mongodb-community@4.2
ดังนั้นด้วย macOS Catalina Apple จึงสร้าง Volume ใหม่เพื่อความปลอดภัย หากคุณอยู่ใน MacOS Catalina คุณจะต้องสร้างโฟลเดอร์/data/db
System/Volumes/Data
ทำตามคำสั่งเหล่านี้
sudo mkdir -p /System/Volumes/Data/data/db
sudo chown -R
id -un /System/Volumes/Data/data/db
เริ่ม MongoDB
brew services run mongodb-community
เพลิดเพลิน😉
https://www.apple.com/macos/catalina/features/
macOS Catalina ทำงานในไดรฟ์ข้อมูลระบบเฉพาะแบบอ่านอย่างเดียวซึ่งหมายความว่าแยกจากข้อมูลอื่น ๆ ทั้งหมดและช่วยปรับปรุงความน่าเชื่อถือของ 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
นี่คือสิ่งที่ใช้ได้ผลสำหรับฉันเนื่องจากฉันกำลังเรียนหลักสูตร Udemy: 1. ติดตั้ง HomeBrew โดยพิมพ์สิ่งนี้ลงในเทอร์มินัลของคุณ
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
ย้ายโฟลเดอร์ / data / db เก่าของคุณ (ถ้าคุณต้องการสำรองข้อมูล dbs ปัจจุบันของคุณ) ไปยังโฟลเดอร์ที่ไม่ใช่รูทและดำเนินการขั้นตอนต่อไป
รันใน Terminal a) brew uninstall mongodb
b) ถ้าจำเป็นให้รันbrew uninstall --force mongodb
c) brew tap mongodb/brew
d) brew install mongodb-community
e)brew services start mongodb/brew/mongodb-community
สิ่งที่คุณต้องมีตอนนี้คือเรียกใช้ mongo ใน Terminal แล้วคุณจะเห็นสัญลักษณ์ mongo shell>
โปรดแจ้งให้เราทราบหากใช้งานได้;) ฉันใช้เวลาเกือบ 2 ชั่วโมงในการคิดออกจากบทความนี้: /apple/362883/mongodb-doesnt-work-after-update-to -macos-catalina-10-15
ไชโย Radu
หากคุณใช้ Mac และประสบปัญหาคำสั่งด้านล่างมีประโยชน์
whoami
ตัวแปรจะรับผู้ใช้ปัจจุบัน
mongod --dbpath=/Users/$(whoami)/data/db
เส้นทางเริ่มต้นสำหรับสูตรชุมชน mongodb
นอกเหนือจากการติดตั้งเซิร์ฟเวอร์ MongoDB และไบนารีของเครื่องมือแล้วสูตร mongodb-community ยังสร้าง:
แล้วมันก็ใช้ได้สำหรับฉัน:
mkdir -p usr/local/var/mongodb/data/db
คุณไม่สามารถสร้าง/data/
ไดเร็กทอรี ที่สงวนไว้สำหรับระบบไฟล์ APFS ตรวจสอบบล็อกของ Bombichเกี่ยวกับปัญหานี้
ฉันทำอย่างนี้:
mkdir -p usr/local/var/mongodb/data/db
ตั้งแต่เส้นทางใหม่ที่เป็น "usr / local / var / mongodb"
ฉันกำลังสูญเสียสาเหตุที่ Apple ทำเช่นนั้น .. ตอนนี้เราไม่สามารถมีไดเรกทอรีระดับรากอื่น ๆ สิ่งนี้ไม่สมเหตุสมผลและผู้คนที่สร้างด้วยสิทธิ์ root โฟลเดอร์เหล่านั้นจะรู้ว่ากำลังทำอะไรอยู่
ด้วย macOS Catalina คุณจะไม่สามารถจัดเก็บไฟล์หรือข้อมูลในไดรฟ์ข้อมูลระบบแบบอ่านอย่างเดียวได้อีกต่อไปและไม่สามารถเขียนไปยังไดเร็กทอรี "root" (/) จากบรรทัดคำสั่งเช่นด้วย Terminal
หากต้องการเพิ่มสิ่งที่David Buck เขียนไว้ที่นี่ก่อนอื่นคุณต้องสร้างไดเร็กทอรีจริง คุณสามารถทำได้ด้วย:
sudo mkdir / ระบบ / ไดรฟ์ข้อมูล / ข้อมูล / ข้อมูล / db
หากคุณได้รับข้อผิดพลาดนี้:
"ข้อผิดพลาดในการแยกวิเคราะห์บรรทัดคำสั่ง: ตัวเลือกที่ไม่รู้จัก" --dbpath / System / Volumes / Data / data / db "ลอง" mongod --help "เพื่อดูข้อมูลเพิ่มเติม"
หลังจากสร้างนามแฝงนั่นเป็นเพียงเพราะ David Buck (ในขณะที่แสดงความคิดเห็นที่เป็นประโยชน์จริงๆ) พลาดช่องว่างในคำตอบของเขา
ในการแก้ไขปัญหานี้ให้พิมพ์
อูนาเลีย mongod
แล้วพิมพ์
นามแฝง mongod = "sudo mongod --dbpath / System / Volumes / Data / data / db"
Catalina เวอร์ชัน Mac ทำให้โฟลเดอร์รูทไม่สามารถเขียนได้อีกต่อไป
Brew มี mongodb เวอร์ชันอัปเดตเพื่อใช้เส้นทางใหม่ (ซึ่งสร้างขึ้นเอง) /usr/local/var/mongodb
และทำตามคำแนะนำเหล่านี้จะช่วยแก้ปัญหาได้:
คำแนะนำในการติดตั้ง mongodb-community-edition ที่อัปเดต
brew install mongodb-community@VERSION
โดยที่เวอร์ชันแรกที่มีการแก้ไขคือ 4.2
ฉันสร้างส่วนสำคัญด้วยขั้นตอนง่ายๆในการติดตั้งและเรียกใช้ mongodb บน 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