mac上的mongodb安装与使用的踩坑记

好吧,毕设项目还要自己搭后端,搭数据库,以前都是用的 egg + mysql,这次试试没用过的 koa2 + mongodb 本以为会和以前一样,几下就能弄好,没想到这次掉进坑里了。。。

这次写篇文章记录一下整体流程以及踩过的坑

做毕设的过程中要是遇上新的问题,再补充进来。


参考内容:



安装mongodb

2种安装方式

  1. 下载官方安装包,手动安装
  2. 使用brew安装

手动安装

可以参考菜鸟联盟的安装流程

# 进入 /usr/local
cd /usr/local

# 下载  (注:下载的版本可以参考官网 https://www.mongodb.com/download-center/community)
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.6.tgz

# 解压
sudo tar -zxvf mongodb-osx-x86_64-4.0.6.tgz

# 重命名为 mongodb 目录

sudo mv mongodb-osx-x86_64-4.0.6 mongodb
复制代码

然后第一个坑出现了!

菜鸟联盟上 写的下一步是

export PATH=/usr/local/mongodb/bin:$PATH
复制代码

这样其实没错,不过这是一个临时环境,关闭shell后这个环境就消失了。一个正常人要做的就是配置一个全局环境

然后第二个坑出现了!

如果这时候搜索 mongodb 配置全局变量,你可能会搜到下面的内容

(1)进入终端

(2)vi ~/.bash_profile

编辑mongo路径:export PATH=/usr/local/mongodb/bin:$PATH ,然后保存

(3) source ~/.bash_profile //保存使配置生效
复制代码

也许你成功了,但我是失败了。我搜出来的基本都是这样的答案。这个问题搞得我莫名其妙的,后来总算找到原因了:

系统默认的终端一般是 bash ,而我使用的是 zsh

在zsh中按照上面的流程 只能设置临时的环境变量

如果你还使用了其他的终端,可能配置方法也更不一样,还是要专项输出

既然问题明确了,那么我们要做的事就清楚了:

我们要在zsh中永久设置系统环境变量,zsh在启动的时候 首先会读取~/.zshrc这个配置文件,所以我们可以把环境变量的配置信息放到这个配置文件中

vi ~/.zshrc
添加上 export PATH=/usr/local/mongodb/bin:$PATH
复制代码

大功...尚未告成

brew安装

再说说brew安装

brew安装其实很简单,按照菜鸟教程上的来,就一行命令

sudo brew install mongodb
复制代码

按官网文档来说

In addition to the binaries, the install creates:

  • the configuration file (/usr/local/etc/mongod.conf)
  • the log directory path (/usr/local/var/log/mongodb)
  • the data directory path (/usr/local/var/mongodb)

还会多帮我们添加这些内容

使用

好的,我们现在安装完了。接下来看看怎么使用

第一步,创建数据库存储目录

sudo mkdir -p /data/db
复制代码

mongodb的默认数据库存储地址在 /data/db,这需要我们手动创建

然后我们再启动服务

mongod
复制代码

好的,如果不出意外,你应该成功地 没有启动服务

第三个坑出现了!

你的终端上会有一大堆的内容,其中有一行大概说到 无法操作只读文件/data/db,我截取了一部分内容

exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: /data/db, terminating
复制代码

错误原因:对于文件夹 /data/db 没有操作权限,目前这个文件夹只有只读权限

解决办法:

  1. 修改权限 sudo chomd -R /data/db
  2. 自己在别处创建一个数据库路径,更改mongoDB数据库路径

我其实一开始就打算把数据库路径放在我随时可见的地方,直接就使用了第二种方法

#首先创建一个数据库存储目录, 我是建在 ~/Documents/mongodb/data
#以后运行的时候,输入下面的命令就ok
mongod --dbpath ~/Documents/mongodb/data
复制代码

当我以为这之后万事大吉了,然后我发现控制台里冒出一大堆的东西,惊了,怎么和菜鸟教程上的完全不一样? 好几次我都以为是又出什么问题了,直到我看了官方文档上的内容

Verify that MongoDB has started successfully by checking the process output for the following line:

[initandlisten] waiting for connections on port 27017

The output should be visible in the terminal or shell window.

You may see non-critical warnings in the process output. As long as you see the log line shown above, you can safely ignore these warnings during your initial evaluation of MongoDB.

大概就是说,如果能看到提示【等待连接27017】,你的数据库服务其实就已经启动了(虽然有一些non-critical warnings)


到这里,数据库就启动完毕了,剩下的要做的就是连接它了。

不得不感叹,写文档的时候思路清晰,顺序进行。 自己当时在解决问题的时候,脑子里简直是一堆s.h.i.t,看过的文档远远不止列出来的那4个。。

转载于:https://juejin.im/post/5c8bd4096fb9a049ca383e1e

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值