Win10 安裝配置 MongoDB 4.0 踩坑記

[Win10 安裝配置 MongoDB 4.0 踩坑記]

image.png

redis 官方沒有 Windows 版的,微軟維護的已經好久沒更新了,所以就在想著換成 MongoDB。

于是一趟被我復雜化的踩坑之旅就開始了,同時也記錄一下,避免有人遇見跟我一樣的問題。

首先在 官網 上下載 msi 安裝包開始安裝。

image.png

我不喜歡把軟件裝在系統盤,所以我選擇 Custom,自己選要裝在哪里,然后就跳出來下面這張圖。針對下面這張圖我翻譯一下官方文檔上的內容作為解釋。


image.png

從 MongoDB 4.0 開始,默認情況下,你可以在安裝期間配置和啟動 MongoDB 作為服務,并在成功安裝后啟動 MongoDB 服務。也就是說,MongoDB 4.0 已經不需要像以前版本那樣輸入一堆命令行來將 MongoDB 配置成 Windows 服務來自動運行了,方便了很多。

  • 如果你選擇不將 MongoDB 配置為服務,請取消選中 Install MongoD as a Service

  • 如果你選擇將 MongoDB 配置為服務,則可以:

    • 指定以下列用戶之一運行服務:

      • 網絡服務用戶;即 Windows 內置的 Windows 用戶帳戶

      • 本地或域用戶:

        • 對于現有本地用戶帳戶,Account Domain 指定為 .,并為該用戶指定 Account NameAccount Password
        • 對于現有域用戶,請為該用戶指定 Account DomainAccount NameAccount Password
    • 指定 Service Name。如果你已擁有具有指定名稱的服務,則必須選擇其他名稱。

    • 指定 Data Directory(數據保存目錄),對應于 --dbpath。如果該目錄不存在,安裝程序將創建該目錄并為服務用戶設置訪問權限。

    • 指定 Log Directory(日志保存目錄),該目錄對應于 --logpath。如果該目錄不存在,安裝程序將創建該目錄并為服務用戶設置訪問權限。

然后到了這一步,不要勾選 Install MongoDB Compass

image.png

<big>然后</big>,就出問題了。看他的提示說的是 MongoDB Server 服務無法啟動,確保你有足夠的權限啟動系統服務。

image.png

???沒有權限嗎,右鍵屬性安裝包發現沒辦法使用管理員啟動。于是我就跟著這個線索去找資料了。

有說使用管理員啟動命令提示符,然后進行安裝的,我試了下,沒用。然后我根據官網上的無人值守安裝教程來做,發現連最基本的文件都解壓不完全。【怒摔

沒有辦法在安裝時候解決這個問題,那么只有先忽略了。

然后根據官網上的教程來手動啟動服務試一下,在 MongoDB 安裝文件夾的 bin 文件夾下,使用管理員權限打開 PowerShell:


image.png

然后輸入:

.\mongod --dbpath="E:\MongoDB\data"
  • 1
image.png

從返回的命令來看沒問題,最后一條是等待端口 27017 上的連接,所以我在瀏覽器中輸入了 127.0.0.1:27017

image.png

可以訪問,沒毛病啊。

所以服務為什么不能啟動呢?
我嘗試使用 net start MongoDB 命令來啟動,失敗:

image.png

繼續深挖,在任務管理器的服務里面找到 MongoDB,發現狀態是 已停止,右鍵開始,提示 服務沒有及時響應啟動或控制請求

image.png

再來,在任務管理器下方 打開服務,找到 MongoDB Server,查看它的屬性,看看有什么貓膩。

image.png

這里可以看到可執行文件的路徑是這樣的:E:\MongoDB\bin\mongod.exe --config "E:\MongoDB\bin\mongod.cfg" --service

也就是說,啟動 MongoDB Server 服務時運行的也是這條命令,于是我手動運行了這條命令:


image.png

Unrecognized option: mp,未識別的選項:mp,這是個啥?
mongod 命令后的 --config 是指定運行 mongod 時的配置文件,于是在 bin 文件夾下找到 mongod.cfg 文件,打開:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: E:\MongoDB\data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  E:\MongoDB\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:
mp:

終于發現隱藏在最后一行的 mp:,找得我好苦,然后又在配置文件中列出的網址中翻了一圈,沒有發現有 mp: 這個選項。在解決問題時我曾經試著在 C 盤上安裝 MongoDB,一切順利,沒有任何報錯,所以我對比了一下安裝在兩個盤上的配置文件,發現差別就只是最后的這個 mp:

當我把最后一行的 mp: 刪掉后,重新啟動服務,成功了!!!

image.png

將 bin 文件夾設置進系統環境變量可以大大方便在命令提示符中使用 mongo 等命令,這里就不細說了。

我也不知道為什么安裝在非系統盤上時,mongod.cfg 文件會無故多出來這么令人抓狂的一行,我看其他教程都沒有提到這個問題,也許只有我電腦會出現這種情況。中途我還很復雜地將 Network Service 用戶添加到了 User 組里,雖然不知道為什么這也解決了問題,但是后面發現原來只需要刪掉一行就行了。

所以解決問題中走了很多彎路,踩了很多坑,不過也收獲了很多。如果有誰能解釋這個現象,歡迎指教~

如果是使用 msi 進行安裝,由于 MongoDB 4.0 自動安裝配置成 Windows 服務,也就不需要大部分教程里的像 mongod --dbpath "C:\MongoDB\data\db" --logpath "C:\MongoDB\data\log\mongo.log" --install --serviceName "MongoDB" 這樣的語句了,除非下載的是單純的壓縮包,我看到很多 4.0 的教程下載的是 msi 安裝包,都還在使用命令提示符配置 MongoDB 成服務,所以這不是多此一舉嗎?

MongoDB Server 啟動時會調用 mongod.cfg 配置文件,所以要調整配置,直接按照官方文檔里的說明修改該文件就行。log 文件會記錄很多有用的信息,如果使用 mongod 或 mongo 有地方報錯了或者想知道更詳細的信息可以查看日志。

比如說你已經使用 msi 安裝好了,然后又使用上面那條語句,在命令提示符里只有這樣的提示:


image.png

但是打開日志文件就會發現:


image.png

已經安裝過 MongoDB 服務了,所以上面那句相當于沒用了。

勤思考,不隨波逐流,多看官方文檔,技術才能進步。

net start MongoDB報錯:發生服務特定錯誤: 100.

有人說,先刪除服務,在建服務,試了,對我沒用。

簡單點,直接進入db文件夾,先刪除 mongod.lock 文件,然后重新啟動服務即可;
要是還不行,就繼續刪 storage.bson文件,然后問題就解決了~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容