好吧,毕设项目还要本身搭后端,搭数据库,之前都是用的 egg
+ mysql
,此次试试没用过的 koa2
+ mongodb
本觉得会和之前同样,几下就能弄好,没想到此次掉进坑里了。。。html
此次写篇文章记录一下总体流程以及踩过的坑mysql
作毕设的过程当中要是赶上新的问题,再补充进来。sql
参考内容:mongodb
2种安装方式shell
能够参考菜鸟联盟的安装流程数据库
# 进入 /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
复制代码
而后第一个坑出现了!后端
菜鸟联盟上 写的下一步是bash
export PATH=/usr/local/mongodb/bin:$PATH
复制代码
这样其实没错,不过这是一个临时环境,关闭shell后这个环境就消失了。一个正常人要作的就是配置一个全局环境koa
而后第二个坑出现了!curl
若是这时候搜索 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安装其实很简单,按照菜鸟教程上的来,就一行命令
sudo brew install mongodb
复制代码
按官网文档来讲
In addition to the binaries, the install creates:
还会多帮咱们添加这些内容
好的,咱们如今安装完了。接下来看看怎么使用
第一步,建立数据库存储目录
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 没有操做权限,目前这个文件夹只有只读权限
解决办法:
- 修改权限
sudo chomd -R /data/db
- 本身在别处建立一个数据库路径,更改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个。。