I updated to MacOS 10.15 (Catalina) today. When I run mongod
in the terminal it cannot find the /data/db
directory:
➜ /Users/william > mongod
2019-10-08T17:02:44.183+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] MongoDB starting : pid=43162 port=27017 dbpath=/data/db 64-bit host=Williams-MacBook-Pro-6.local
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] db version v4.0.3
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] git version: 7ea530946fa7880364d88c8d8b6026bbc9ffa48c
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] allocator: system
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] modules: none
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] build environment:
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] distarch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] target_arch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] options: {}
2019-10-08T17:02:44.211+0800 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
2019-10-08T17:02:44.211+0800 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2019-10-08T17:02:44.211+0800 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-10-08T17:02:44.211+0800 I CONTROL [initandlisten] now exiting
2019-10-08T17:02:44.211+0800 I CONTROL [initandlisten] shutting down with code:100
➜ /Users/william >
I tried to install MongoDB with brew
:
brew install mongodb
➜ /Users/william > brew install mongodb
Updating Homebrew...
Error: mongodb: unknown version :mountain_lion
Any help?
This is the main error:
Catalina has a surprise change: it won't allow changes to the root directory (this was discussed in a forum thread as well):
Unfortunately, this is not spelled out explicitly in Apple's Catalina release notes, other than a brief mention in Catalina features:
Since the directory
/data/db
is coded as MongoDB default, a workaround is to specify a differentdbpath
that is not located on the root directory. For example:This will place MongoDB's data in your home directory. Just make sure that the path
~/data/db
actually exists.Alternative method
An alternative method is to follow the instructions at Install MongoDB Community Edition on macOS by leveraging
brew
:This will create some additional files by default:
To run
mongod
you can either:Run the command manually from the command line (this can be aliased for convenience):
Run MongoDB as a service using
brew services
. Note that this will run MongoDB as a standalone node (not a replica set), so features that depends on the oplog e.g. changestreams will not work unless you modify themongod
configuration file:found a trick... delete the ~/data/db entire folder from the directory then recreate a new one but DO NOT USE mkdir -p /data/db instead, just use your trackpad to do it use system way to create folder
this worked for me
Here's what worked for me:
this script can be helpful https://gist.github.com/sturmenta/cf19baa91b1d79d8ae2b305fb7e1f799
After installing Catalina, you might have a folder on your Desktop called
Relocated Items
. You can find thedata/db
folder inside theSecurity
folder.All I had to do was move the
Security/data/db
, specificallydata/db
and place it inside my home folder.You can do this with the Finder app or with the terminal by running the following command:
After that run:
mongod --dbpath ~/data/db
It's up to you to create the alias earlier
Kevinadi already did justice to the question, however this is how I went about solving the problem:
After installing mongodb-community
sudo mkdir -p /System/Volumes/Data/data/db
(Create the data/db folder)sudo chown -R
id -un/System/Volumes/Data/data/db
(Give permissions)mongod --dbpath=/System/Volumes/Data/data/db
(Change dbpath of mongodb)mongod
(Runs well)I found this article on installing mongodb very useful