由于mongo已经闭源了,以前的安装方式会报源错误,如下:
需要采用新的安装方式。
参考:https://www.runoob.com/mongodb/mongodb-osx-install.html
使用 brew 安装
此外你还可以使用 OSX 的 brew 来安装 mongodb:
brew tap mongodb/brew
brew install mongodb-community@4.2
@ 符号后面的 4.2 是版本号。
安装信息:
配置文件:/usr/local/etc/mongod.conf
日志文件路径:/usr/local/var/log/mongodb
数据存放路径:/usr/local/var/mongodb
运行 MongoDB
我们可以使用 brew 命令或 mongod 命令来启动服务。
brew 启动:
brew services start mongodb-community@4.2
可以输入以下命令验证MongoDB是否正在运行
ps aux | grep -v grep | grep mongod
如图则为正常启动:
图片.png
否则的话查看日志
NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock Permission denied
解决方法:
sudo rm /tmp/mongodb-27017.sock
brew 停止:
brew services stop mongodb-community@4.2
mongod 命令后台进程方式:
mongod --config /usr/local/etc/mongod.conf --fork
这种方式启动要关闭可以进入 mongo shell 控制台来实现:
> db.adminCommand({ "shutdown" : 1 })
附: 启动失败的几个错误,坑
1) linux上 当采用 brew services start mongodb-community@4.4 会默认使用/usr/local/etc/mongod.conf 这个配置文件,dbpath为/usr/local/var/mongodb,起不来可以查看日志具体错误原因,/usr/local/var/log/mongodb。
二。。。。
参考:https://www.cnblogs.com/georgeleoo/p/11479409.html
方法二:使用环境变量
在用户根目录下使用如下命令
sudo vim .bash_profile
添加如下变量 路径需自己查,不见得一模一样,也有可能是
/usr/local/Cellar/mongodb-community@4.2/4.2.9
export PATH=/usr/local/Cellar/mongodb-community/4.2.0/bin:${PATH}}
启动MongoDB服务
sudo mongod
启动MongoDB的shell
mongo
附:注意
mongod 默认启动,不带参数,会默认采用/data/db作为数据文件来使用,mac由于升级 对/目录有全新的权限要求,会不起作用。
可以采用如下命令来启动
mongod --dbpath /Users/wuzz/data/db
或后台守护进程启动
mongod --dbpath /Users/wuzz/data/db --fork
这种启动方式需要如下关闭
请使用admin数据库并运行
mongo admin --eval “db.shutdownServer()”
> use admin;
switched to db admin
> db.shutdownServer();
server should be down...
2018-11-15T09:49:11.058+0800 I NETWORK [js] trying reconnect to 127.0.0.1:27017 failed
2018-11-15T09:49:11.059+0800 I NETWORK [js] reconnect 127.0.0.1:27017 failed failed
四、启动mongodb服务端出现错误汇总
Failed to unlink socket file /tmp/mongodb-27017.sock
XiaoL:~ xiaolin$ mongod
2016-11-06T15:23:49.878+0800 I CONTROL [initandlisten] MongoDB starting : pid=1367 port=27017 dbpath=/data/db 64-bit host=XiaoL.local
2016-11-06T15:23:49.879+0800 I CONTROL [initandlisten] db version v3.2.10
2016-11-06T15:23:49.879+0800 I CONTROL [initandlisten] git version: 79d9b3ab5ce20f51c272b4411202710a082d0317
2016-11-06T15:23:49.879+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2j 26 Sep 2016
2016-11-06T15:23:49.879+0800 I CONTROL [initandlisten] allocator: system
2016-11-06T15:23:49.879+0800 I CONTROL [initandlisten] modules: none
2016-11-06T15:23:49.879+0800 I CONTROL [initandlisten] build environment:
2016-11-06T15:23:49.879+0800 I CONTROL [initandlisten] distarch: x86_64
2016-11-06T15:23:49.879+0800 I CONTROL [initandlisten] target_arch: x86_64
2016-11-06T15:23:49.879+0800 I CONTROL [initandlisten] options: {}
2016-11-06T15:23:49.880+0800 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:13 Permission denied
2016-11-06T15:23:49.880+0800 I - [initandlisten] Fatal Assertion 28578
2016-11-06T15:23:49.880+0800 I - [initandlisten]
***aborting after fassert() failure
在终端中输入 sudo rm /tmp/mongodb-27017.sock移除该文件
Unable to create/open lock file
2016-11-06T15:30:54.279+0800 I CONTROL [initandlisten] MongoDB starting : pid=1408 port=27017 dbpath=/data/db 64-bit host=XiaoL.local
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] db version v3.2.10
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] git version: 79d9b3ab5ce20f51c272b4411202710a082d0317
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2j 26 Sep 2016
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] allocator: system
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] modules: none
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] build environment:
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] distarch: x86_64
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] target_arch: x86_64
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] options: {}
2016-11-06T15:30:54.280+0800 I STORAGE [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2016-11-06T15:30:54.280+0800 I CONTROL [initandlisten] dbexit: rc: 100
应该是没有读写权限,加权限sudo chown XiaoL /data/db
- 终端输入命令:
$ sudo mongo
输出结果:
screenshot2.png
控制台输出了错误信息,最重要的一点是directory /data/db not found.说明默认的数据库路径不存在,我们首先需要创建该目录。
创建文件目录,按以下步骤进行:
3.1 在终端输入命令 cd / 命令返回到磁盘根目录
3.2 输入 mkdir -p /data/db 命令创建文件目录。过程中有可能会创建不成功,如以下错误:
screenshot3.png
此时,以sudo权限执行这条命令,即 sudo mkdir -p /data/db,然后输入密码即可创建成功。
网友评论