macOS Catalina 10.15 升级 mongodb-community 4.2 报错及解决方案

每次系统大升级,都会有些生产力工具出问题,所以这次Mac升到macOS Catalina 10.15(19A583),心里早有些准备。

果然,MongoDB启动不了了。

莫不是因为系统升级到了macOS 10.15,不兼容MongoDB?那升级软件呗。

brew update && brew upgrade && brew cleanup

升不动呀。

原来因为种种纠葛(这又是另外一篇故事了),MongoDB不再开源,故HomeBrew已将其移出。具体可以看这里:https://github.com/Homebrew/homebrew-core/pull/43770

那怎么办?

参考官方给出的解决方案:https://github.com/mongodb/homebrew-brew

先卸载老版本:

brew services stop mongodb

brew uninstall mongodb

再安装mongodb-community:

brew tap mongodb/brew

brew install mongodb-community

启动:

brew services start mongodb-community

命令一气呵成,这下成了吧?

哈?

哈???

再看看mongo是否启动了。以下两条命令都可以。

nc -zvv localhost 27017

ps -ax | grep mongo

$ nc -zvv localhost 27017

nc: connectx to localhost port 27017 (tcp) failed: Connection refused

nc: connectx to localhost port 27017 (tcp) failed: Connection refused

$ ps -ax | grep mongo

  674 ttys000    0:00.00 grep mongo

还是没有启动成功。

到底是什么问题呢?

https://stackoverflow.com/questions/58283257/mongodb-doesnt-work-on-latest-mac-os10-15

看了上面的解释,很清楚了,是没找到数据库目录/data/db,且macOS Catalina也不再允许创建这种目录。

此时需要启动时另外指定一个目录,mongod --dbpath 可用目录。

通过以上操作,MongoDB可以启动了,但解释不了“brew services start mongodb-community”命令不生效呀?

我又做了一个操作,删除老版本留下的/usr/local/var/mongodb目录。重新执行brew services start mongodb-community

这下行了。

$ ps -ax | grep mongo

$ nc -zvv localhost 27017