目前在学习nodejs,要用到mongodb,之前在菜鸟教程上,安装过mongodb,后来跟新了mac系统到10.15.5,发现mongodb就是无法启动了,会报两种错,一是“mongod Address already in use”,另一种是找不到“dbpath /data/db”。
在网上找了很多资料,由于很多文档都是这个抄那个,那个抄这个,最后也没实际解决问题,浪费了不少的时间,所以我就注册了一个简书账号,把自己遇到的问题,和最终的解决方法列出来,由于本人也是小白一枚,所以知道新手在学习中可能因为很简单的设置,不清楚,会走很大的弯路,所以在这里我尽量做到让新手能了解一些基本的东西。
一、安装
先来说一下,mongodb的安装,可以用终端直接下载安装
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz
# 解压 sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz (详情请参照菜鸟教程)
也可以利用homebrew 安装,另外可以到官网下载 安装包tgz,解压后就可以使用。
二、修改环境变量
为了方便使用,打开终端,输入“open -e .bash_profile”,在打开的文件中加入
export PATH=${PATH}:/usr/local/MongoDB/bin
其中MogoDB是mongodb文件夹的名字,可随意设置
用Command+S保存配置,.bash_profile编辑窗口,然后在终端中输入"source .bash_profile"使配置生效。输入"mongod -version",回车后如果看到版本号则说明MongoDB已经成功安装到了Mac上了。
三、启动mongodb
mongob的启动需要自己建一个data文件夹里,再创建一个db文件夹,
###错误情况1:找不到 data/db
“1、首先我们创建一个数据库存储目录 /data/db:
sudo mkdir -p /data/db
”
这是菜鸟教程上的方法,但是由于升级到10.15后的系统是不能再在 电脑硬盘根目录下创建文件夹,所以通过这种方法创建的文件夹是只读权限,你运行mongod的时候就会报错,找不到/data/db 。
其实这两个文件夹不一定要放到根目录的,放在其他地方也一样,比如放在 /usr/local/ 下,那么在终端的启动命令就是: mongod --dbpath /usr/local/data ,这时候是已经启动了程序,终端最后会显示
2020-06-28T23:04:26.570+0800 I SHARDING [LogicalSessionCacheReap] Marking collection config.transactions as collection version:
这个时候只需要再开一个终端,输入 mongo ,就可以成功连接到mongodb的终端控制台,那个挂起mongodb的终端是不能被关闭的。
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
> show db
看到这个 “>” ,就是已经连接上了。
###错误情况2: mongod Address already in use
这是说明mongodb的进程已经启动了,这时候,可以通过系统的 “活动监视器”来搜索 mogo,就能找到该进程,然后强制退出该进程,重新在终端,输入mongo,就能启动mongodb数据库了