MongoDB 在 Mac 運行時狀況記錄

本篇不算是 Bug 也不算是什麼大問題,但是還是紀錄一下。

前言

剛好這陣子已經來到偏後端的學習,在學期 2–3 中,學到了 Mongoose DB 這件事。
而在從 0 ~ 1 建立專案時,設置資料庫的連線就相對重要,有看到教案中有一句以下一句重點:

使用 macOS 的同學,如果不小心把資料庫伺服器的終端機頁面關掉,需要再用指令重新啟動。

沒錯啦!我當時認為這句話很大的重點是「關掉終端機」**=資料庫伺服器關閉」,是必須要同時**開著「資料庫伺服器的終端機」及「專案的終端機」。但在我練習時,這個狀況似乎不同,甚至我懷疑人生的覺得是不是我又碰到神奇的特殊狀況了 QAQ,因此就趕快向助教詢問。

還原

沒有使用另一個終端機做「重新啟動伺服器步驟」,但在 run 專案的終端機中還是有顯示 mongodb connected!

只使用 npm run dev

從開啟專案至 npm run dev 前,電腦沒有關機,只有闔上螢幕(意即:睡眠狀態),只有開啟一個 run 專案的終端機之下,但成功連上 DB !

嘗試

提問後嘗試了助教提供的指令 ps

第一行是指開啟終端機輸入/ 第二行是輸入啟動 DB 指令後輸入

並透過 lsof -i -n | grep LISTEN

發現 mongod 還在運行中

解決

後來就將所有程式 command + Q 結束,並重新啟動電腦。

再輸入一次 ps & lsof -i -n | grep LISTEN 指令並透過 monitor(活動監視器)就發現 mogod 沒有在背景運作了。

monitior

結論

而根據這幾點,助教補充說明:使用 mongod 啟動 MongoDB 時,如果沒有在終端機停止 mongod,那關掉終端機也不會結束 MongoDB。

所以,mac 用戶如果真的要結束 MongoDB 要記得在終端機做終止,而非只有單純的關掉終端機。

後記


我一定要說一下這個提問原本是膽戰心驚的,想著自己不知道哪裡有問題,可是又很想了解背後原理,殊不知討論到後面,是助教溫柔的說聲感謝 QAQ 整個眼淚大噴發,終於感受到好的提問是教學相長,還有彼此進步!