mac上的mongodb安裝與使用的踩坑記

好吧,畢設項目還要本身搭後端,搭數據庫,之前都是用的 egg + mysql,此次試試沒用過的 koa2 + mongodb 本覺得會和之前同樣,幾下就能弄好,沒想到此次掉進坑裏了。。。html

此次寫篇文章記錄一下總體流程以及踩過的坑mysql

作畢設的過程當中要是趕上新的問題,再補充進來。sql


參考內容:mongodb



安裝mongodb

2種安裝方式shell

  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
複製代碼

而後第一個坑出現了!後端

菜鳥聯盟上 寫的下一步是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安裝

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個。。

相關文章
相關標籤/搜索