Resolving MongoDB Error When Starting with Homebrew on macOS
How to Start 'mongodb-community' service with Homebrew on macOS by Fixing Permissions
Introduction
While installing MongoDB Community Edition on my MacBook using Homebrew (official MongoDB doc), I encountered an issue: the mongodb-community
service seemed to start successfully but was listed as error when I checked its status. If you're facing the same problem, here's a quick guide to help you fix it.
The Issue
After running:
brew services start mongodb-community
I received a confirmation message. However, checking the service status with:
brew services list
showed:
Name Status User Plist
mongodb-community error
The MongoDB log (/usr/local/var/log/mongodb/mongo.log
) contained warnings:
Running as root user:
"You are running this process as the root user, which is not recommended"
Termination signal received:
"Received signal","attr":{"signal":15,"error":"Terminated: 15"}}
These indicated that MongoDB was running as the root user, which can cause permission issues and lead to the service being stopped.
The Solution
The main issue was incorrect ownership of the MongoDB data and log directories. Here's how to fix it:
Steps:
Stop the MongoDB Service:
brew services stop mongodb-community
Terminate Any Running MongoDB Processes:
pkill -f mongod
Change Ownership of MongoDB Directories:
sudo chown -R $(whoami) /usr/local/var/mongodb sudo chown -R $(whoami) /usr/local/var/log/mongodb
Verify Directory Ownership:
ls -ld /usr/local/var/mongodb ls -ld /usr/local/var/log/mongodb
Ensure your username is listed as the owner.
Start the MongoDB Service as Your User:
brew services start mongodb-community
Check the Service Status:
brew services list
The service should now show as started under your username.
Test the MongoDB Connection:
mongosh
You should successfully connect to the MongoDB shell.
Conclusion
By correcting the directory permissions and ensuring MongoDB runs under your user account (not as root), you can resolve the error when starting the mongodb-community
service with Homebrew on macOS. Remember to avoid using sudo
with brew
commands to prevent permission conflicts.