Resolving MongoDB Error When Starting with Homebrew on macOS

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:

  1. Stop the MongoDB Service:

     brew services stop mongodb-community
    
  2. Terminate Any Running MongoDB Processes:

     pkill -f mongod
    
  3. Change Ownership of MongoDB Directories:

     sudo chown -R $(whoami) /usr/local/var/mongodb
     sudo chown -R $(whoami) /usr/local/var/log/mongodb
    
  4. Verify Directory Ownership:

     ls -ld /usr/local/var/mongodb
     ls -ld /usr/local/var/log/mongodb
    

    Ensure your username is listed as the owner.

  5. Start the MongoDB Service as Your User:

     brew services start mongodb-community
    
  6. Check the Service Status:

     brew services list
    

    The service should now show as started under your username.

  7. 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.