Mac使用Homebrew安装MongoDB
Homebrew是Mac下非常强大的软件包管理工具,类似CentOS的Yum,使用起来非常方便。
安装
安装homebrew只需下面一行命令,更详细过程请查看官网 https://brew.sh/#install :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后,输入下面这个命令添加MongoDB的源:
brew tap mongodb/brew
最后,安装开源社区版(免费版):
brew install mongodb-community
配置和运行
安装后之后就要配置MongoDB了,MongoDB的数据库文件默认是放在 /data/db
目录下,所以要创建该目录:
mkdir -p /data/db
如果发现mongodb
无法在/data/db
下创建文件,那多半是权限不对了,那就要赋予目录当前用户的权限,先看看当前用户名:
whoami
例如我当前电脑的用户名是elantion
,那么我就要让elantion
成为这个目录的所有者:
sudo chown elantion /data/db
之后就可以运行MongoDB了;
mongod
如果看到 waiting for connections on port 27017
字样,并且没有退出,就表示成功运行了。不过这不是后台模式,会占用一个命令行窗口,所以要让后台运行可以运行这一句:
brew services start mongodb-community
这样MongoDB就成功运行在后台了,并不复杂吧?
升级
homebrew 不仅让安装和运行mongodb变得非常简单,而且升级也超级简单,只需运行 brew update
即可。可是有个问题就是数据库的版本是不会跟随MongoDB的程序一起升级,升级后很有可能无法正常读取旧数据,MongoDB就无法启动,这时候只能先用旧版本运行MongoDB,例如下面是用4.2(注意:配置文件必须指定):
/usr/local/Cellar/mongodb-community@4.2/4.2.9/bin/mongod --config /usr/local/etc/mongod.conf
然后进入MongoDB的CLI环境:
mongo
输入下面命令查询当前兼容版本:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
下面的返回表示当前数据库只能兼容4.0版本:
{ "featureCompatibilityVersion" : { "version" : "4.0" }, "ok" : 1 }
下面命令可以升级为4.2:
db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )
要注意的是,只能从4.0升级4.2,不能直接从3.x升级4.2,需要一级一级往上升(好像很麻烦 -_- ),没什么意外就会返回以下信息:
{ "ok" : 1 }
最后,启动下MongoDB的服务就可以了,大功告成!
brew services start mongodb-community
如果可以正常启动4.4版本,那么提前升级数据库版本到4.4也是可以的哦:
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
问题
下面列举下我遇到的问题:
- 如果遇到
szh abort
问题,有可能是/tmp
文件夹权限有问题。 - 看MongoDB的log用这个命令:
tail -f /usr/local/var/log/mongodb/mongo.log