最近寫了一個用node來操作MongoDB完成增、刪、改、查、排序、分頁功能的示例,並且已經放在了服務器上地址:http://39.105.32.180:3333。
項目一共四部分:
1.MacOS下MongoDB數據庫的安裝配置。(本篇文章)
2.MongoDB在MacOS上的客戶端Robo 3T 的使用
3.Centos 下MongoDB數據庫的安裝配置。
4.node-express項目的搭建並通過mongoose操作MongoDB數據庫詳細示例
一:去官網下載MongoDB安裝包 官方地址 ,選擇好版本直接下載,可能下載會很慢。
也可以用brew安裝,但我不用。
二:下載下來的解壓包直接放到系統的某個文件下。
下載下來文件格式是:
1.我直接把文件移動到了訪達的 /usr/local/里面,並修改文件名稱為mongodb,並創建數據以及日志文件(brew安裝的需要命令來操作)。
Mac下/usr/local目錄默認是對於Finder是隱藏,如果需要到/usr/local下去,打開Finder,然后使用command +shift+G,在彈出的目錄中填寫/usr/local就可以了
三:配置MongoDB的系統環境變量。(目的為了可以全局任何地方啟動數據庫)
新建終端,輸入open -e .bash_profile 或者 vi ./.bash_profile
PATH中加入"$MONGODB_HOME/bin:$PATH" 配置成圖片那樣
執行:source .bash_profile 使修改生效。
四: 打開終端,進入到mongodb目錄,執行:mongod --dbpath data --logpath log/mongod.log --logappend --port=27017 --fork 命令開啟服務,出現以下就表示服務開啟成功。
出現下面情況是服務已經開啟過了。
Tip:MongoDB常用命令(不用太在意):
mogond --dbpath $dbpath(數據庫數據文件路徑)
--logpath $logpath(日志文件的路徑)
--logappend(以追加的方式打開文件)
--fork(將數據庫服務放在后台運行)
五:服務開啟后 執行 mongo (因為配置了環境變量所以,服務開啟后在哪里都可以執行mongo命令)
出現版本,http://127.0.0.1:27017(可在瀏覽器打開),以及可以輸入命令 就說明成功了
六: 簡單命令操作數據庫
其它命令可以查看幫助:1.數據庫的幫助 db.help(); 2.數據庫表的幫助 db.表名字.help();
最后:
在此過程中遇到了幾個操作不當引來的問題:
1. 在修改環境變量的時候 配置的 PATH=$MONGODB_HOME/bin: 后面的:$PATH沒有寫,導致系統的所有命令都不能用了。都成了“ -bash:ssh:command not found ”這樣的
辦法一:暫時的解決,重啟終端后將失效。
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
辦法二:用命令的全路徑,修改成功后,重啟終端就可以生效了。
"PATH=…"是配置環境變量,而"export PATH"是執行配置的環境變量,而我改成PATH=$MONGODB_HOME/bin:,說明環境變量只有一個路徑“$MONGODB_HOME/bin:”,
其他的都沒有了,所以原來的命令都無效了。
總的來說環境變量配置也就兩行:
PATH=path1:path2
export PATH
立即生效:source ~/.bash_profile
注:不要輕易的修改PATH里的path路徑,添加是在后面加“:path”追加即可。
2.啟動mongo報錯:couldn't connect to server 127.0.0.1:27017
打開mongodb發現報錯,查了下,一般產生原因是mongodb由於不正常關閉產生了一個mongo.lock文件,只要找到並刪除這個lock文件,
執行repair命令並重新啟動mongodb就好了,解決命令見如下。
sudo rm mongod.lock路徑
sudo mongod --repair
sudo start mongodb || sudo service mongodb start
sudo status mongodb || sudo service mongodb status
mongo
關於mongod.lock路徑,取決於你安裝mongodb時的創建數據和日志的目錄。以下是mongodb.lock可能出現的位置:
/data/db/mongod.lock
/var/lib/mongodb/mongod.lock
/var/mongodb/data/mongod.lock