簡體   English   中英

在ubuntu 16.04 LTS上運行mongodb

[英]Running mongodb on ubuntu 16.04 LTS

如何在Ubuntu 16.04 LTS上運行Mongodb作為服務? 幾天前我將服務器升級到Ubuntu 16.04。 我注意到我重啟時我的MongoDB服務沒有啟動。 試着用

sudo initctl start mongod

沒有做的伎倆。 任何人都知道如何解決這個問題?

任何升級或安裝Ubuntu 16.04(也稱為Ubuntu Xenial xerus)的人都注意到一些舊服務停止運行。 此問題從版本15.04中已知,但我將重點關注上述版本。

這是MongoDB的情況。 簡而言之,Ubuntu從新貴轉移到了systemd。 解決這些問題的一個常見解決方案是切換回新貴。 我不認為這個選項是一個真正的解決方案,當然不是長期的。

該問題的真正解決方案(IMHO)是編寫將啟動MongodDB的systemd腳本。 不幸的是,MongoDB的人還沒有供應一個。

所以我不得不從頭開始寫一篇。 要創建自己的一個,請按照以下步驟操作:

  1. 切換到root使用
    \n sudo su\n

或使用sudo執行以下所有步驟。

  1. 創建服務腳本(在此示例中,服務的名稱是Mongodb)

    \n nano /lib/systemd/system/mongodb.service\n
  2. 文件內容應該是

    \n [單元]\n Description = MongoDB數據庫服務\n 想要= network.target\n 之后= network.target\n\n [服務]\n ExecStart = / usr / bin / mongod --config /etc/mongod.conf\n ExecReload = / bin / kill -HUP $ MAINPID\n 重啟=始終\n 用戶= mongodb的\n 組=的MongoDB\n StandardOutput =系統日志\n StandardError的=系統日志\n\n [安裝]\n WantedBy = multi-user.target\n

您也可以從這里下載文件: mongodb.service
以下是重要字段的簡要說明:
ExecStart - 是要運行的命令。 Mongo將自己安裝在/ usr / bin下,配置文件寫在/ etc
用戶 - mongod進程的uid。
Group - mongod進程的gid。 請注意,用戶和組是由安裝創建的。

現在開始mongodb:

sudo systemctl start mongodb

要停止mongodb服務使用:

sudo systemctl stop mongodb

在啟動時啟用mongodb

sudo systemctl enable mongodb.service

如果需要刷新服務使用:

 sudo systemctl daemon-reload

除了現在的一件事之外,最新版本的MongoDB完成了大部分工作。 Ubuntu 16.04.x上安裝MongoDB后,運行如下命令:

$ sudo systemctl enable mongod.service
$ sudo systemctl daemon-reload

現在很可能mongod在每次啟動時自動啟動。


此解決方案也適用於出現此錯誤:

無法啟動mongod.service:找不到單位mongod.service。

運行上面的命令后,下面的命令開始工作:

$ sudo service mongod start
$ mongo

同樣,必須啟用安裝的所有服務才能運行。 例如,在安裝Ops Manager(也稱為MMS)之后,文檔說要運行下面的推薦。

$ sudo systemctl start mongodb-mms.service

很可能Ubuntu沒有啟動該服務。 因為它尚未啟用。 要啟用它,只需運行以下命令:

$ sudo systemctl enable mongodb-mms.service
$ sudo systemctl daemon-reload

然后嘗試啟動該服務:

$ sudo systemctl enable mongodb-mms.service

就這樣...

對於想要全新安裝的人

我一直在努力奮斗1小時。 然后我發現這個頁面安裝就像做:

sudo apt-get update
sudo apt-get install mongodb

然后檢查一切是否有效:

sudo service mongodb status

如果這對您有用,請告訴我!

3.2+的軟件包包含upstart腳本。

首先,按照官方說明安裝

# If you installed the ubuntu package, remove it, if not skip to key import
sudo apt-get remove mongodb
sudo apt-get autoremove
# import key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# update apt
sudo apt-get update
# install the package
sudo apt-get install -y mongodb-org

然后取消mongodb.service作業(並啟用並啟動它)。 我相信它被掩蓋了,因為該軟件包也包含一個新手工作,所以你不希望它們都啟動。 然而,在我們的案例中,這顯然是我們想要的。

sudo systemctl unmask mongodb
sudo service mongod start

參考文獻:

相關的JIRA問題

關於Ask Ubuntu的相關問題

sudo systemctl start mongod

在Ubuntu Linux 16.04上對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM