Setting up a standard installation of MongoDB on OS X

These instructions are based on our specific use, but should work in general for MongoDB installations under OS X (tested up to 10.13.4 “High Sierra”).

Install the MongoDB binary

MongoDB is available from the download center (community version); only there one can see which version is the most recent (there does not seem to be an “latest” endpoint).

The installation itself (including download) proceeds like this:

mkdir mongodb
curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.4.tgz
tar -xvf mongodb-osx-ssl-x86_64-3.6.4.tgz -C ./mongodb --strip-components 1
sudo mkdir -p /usr/local/bin
sudo cp mongodb/bin/* /usr/local/bin/
sudo touch /var/log/mongodb.log

The databases have to go somewhere; one example with system-wide availability would be /data/db/mongodb/. The same path has to be used in the configuration below (--dbpath).

sudo mkdir -p /data/db/mongodb/
sudo chmod g+w /data/db/mongodb
sudo chmod o+w /data/db/mongodb

The following installation steps are only required for first time installations.

Create a launch item

The last point is just to use a standard place for the DB files. This has to be reflected in the launch file, which in this case is saved as /Library/LaunchDaemons/org.mongo.mongod.plist. One has to write this as root, e.g. using

sudo nano /Library/LaunchDaemons/org.mongo.mongod.plist

… and paste the following content; then CTRL-O

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
   <dict>
      <key>Label</key>
         <string>org.mongo.mongod</string>
      <key>RunAtLoad</key>
         <true/>
      <key>ProgramArguments</key>
         <array>
            <string>/usr/local/bin/mongod</string>
            <string>--dbpath</string>
            <string>/data/db/mongodb/</string>
            <string>--logpath</string>
            <string>/var/log/mongodb.log</string>
            <string>--bind_ip</string>
            <string>127.0.0.1</string>
         </array>
   </dict>
</plist>

Now the launch file has to be activated; it will start mongos and keep it alive.

sudo chown root:wheel /Library/LaunchDaemons/org.mongo.mongod.plist
sudo launchctl load /Library/LaunchDaemons/org.mongo.mongod.plist
sudo launchctl start org.mongo.mongo

2018-04-18