Linux / OS X'te bir mongod hizmetini başlatmanın doğru yolu nedir?


136

Mongodb yükledim ve çalıştırmak, onunla çalışmak, basit DB okuma / yazma türü şeyler yapmak mümkün. Şimdi Mac'imi mongod'u bir hizmet olarak çalıştıracak şekilde ayarlamaya çalışıyorum.

Yanıt olarak "Komut bulunamadı" mesajı alıyorum:

 init mongod start

Cevap olarak:

~: service mongod start
service: This command still works, but it is deprecated. Please use launchctl(8) instead.
service: failed to start the 'mongod' service

Ve eğer denersem:

~: launchctl start mongod
launchctl start error: No such process

Açıkçası biraz etrafta dolanıyorum. Bir sonraki adım, bir şey işe yarayana kadar rastgele karakterler yazıyor gibi görünüyor. Komut yapar işi geçerli: mongod --quiet &Emin, belki de sen bu şekilde yapmanız gerekiyordu değilim? Belki sadece 'sessiz modu' çıkarmalı > /logs/mongo.logve komut satırının sonuna eklemeliyim ?

Aynı şeyi bir linux sunucusunda yapmak amacıyla bir Mac üzerinde geliştirme ortamı oluşturuyorum. Bash komutlarından emin değilim. Cevabı yukarı çekmeye çalıştığım diğer tüm aramalar bana Windows makineleri için tavsiye veriyor.

Belki birisi komutların linux versiyonunu bilir?

Çok teşekkürler


Windows'ta bu bağlantıyı ( stackoverflow.com/questions/2438055/… ), Mac OS'de aynı olup olmadığından emin değilim.
Scott

Teşekkürler Scott, hayır ben de gördüm ve iplik gelen şeyler denedimerror command line: unknown option install
Alex C

Yanıtlar:


129

Mongodb topluluk sürümünün son sürümleriyle, bu basittir.

Demleme yoluyla kurduğunuzda, tam olarak ne yapacağınızı söyler. Yeni bir başlatma kontrol dosyası oluşturmanıza gerek yoktur.

$ brew install mongodb
==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.0.6.yosemite.bottle.tar.gz ### 100.0%
==> Pouring mongodb-3.0.6.yosemite.bottle.tar.gz
==> Caveats
To have launchd start mongodb at login:
  ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
  mongod --config /usr/local/etc/mongod.conf
==> Summary
🍺  /usr/local/Cellar/mongodb/3.0.6: 17 files, 159M

Does mongodpencere sunucusu üzerinden görüntülü bilgilere ihtiyaç; bir fırlatma ajanı olması mı gerekiyor ya da bir fırlatma cinini yapmak yeterli mi?
Marius Butuc

23
OSX kullanıcılarına kadar: Mongo'yu homebrew ile kurdum ve dahil ettim /usr/local/Cellar/mongodb/2.4.5-x86_64/homebrew.mxcl.mongodb.plist(ve kurulumum için düzgün bir şekilde yapılandırıldım). Sadece kopyalanan homebrew.mxcl.mongodb.plistLaunchAgents içine ve (yerine Kalan talimatları takip homebrew.mxcl.mongodbiçin org.mongodb.mongod) ve o inşaat büyük.
jacob

5
Mario Alemi'nin cevabı için aşağı
kaydırsanız iyi olur

/Library/LaunchAgents/homebrew.mxcl.mongodb.plist: Böyle bir dosya veya dizin yok
user269867

Her şeyden önce: MongoDB'nin topluluk baskısını yüklemek için kullanmanız gereken kendi resmi Homebrew Tap'ı vardır. $ brew tap mongodb/brewsonra kullanarak yükleyin $ brew install mongodb-community. Hizmetler gelince, eğer $ brew services şimdi Homebrew çalıştırırsanız o Tap dahil vardır, bu yüzden hiçbir şey yapmanıza gerek yok. Ayrıca, başlangıç ​​hizmetleri hakkında, oturum açtıktan sonra sadece MongoDB'ye ihtiyacınız varsa (bir üretim sunucusu değil bir dev sunucusu olarak), ~/Library/LaunchAgents/dizini kullanın /Library/LaunchDeamons, ikincisi kök ayrıcalıkları gerektirir.
cseder

152

Düzenleme: brew services start mongodbGergo'nun cevabında olduğu gibi şimdi kullanmalısınız ...

Mongodb'u yüklediğinizde / yükselttiğinizde, demlemek size ne yapmanız gerektiğini söyleyecektir:

Girişte mongodb başlatmaya başlamak için:

    ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

Sonra şimdi mongodb'u yüklemek için:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Veya, launchctl istemiyorsanız / buna ihtiyacınız yoksa, şunları yapabilirsiniz:

    mongod

Mükemmel çalışıyor.


Bu talimatı görmemiştim! Mac OSX 10.8.4'te bu benim için mükemmel çalışıyor, sanırım Brew ile kurdum. Jacob'un kabul edilen cevaptaki yorumu denediğimde bilinmeyen bir dosyayı işaret etti.
Matt Fletcher

5
Bu çözümü kabul edilen cevaba tercih ederim. Yukarıdaki cevapta plist'i kopyalamak, mongoyu güncellerken işleri biraz daha zorlaştırır; yolları gerektiği gibi güncellemeyi hatırlamanız gerekir. Bununla birlikte, homebrew tarafından önerildiği gibi bir sembolik bağlantısı kullanmak sizin için bununla ilgilenir. Bu yaklaşımı kullandım ve yukarıdaki yanıttaki takma adlar (org.mongodb.mongod'u homebrew.mxcl.mongodb ile değiştirerek) ve işler harika çalışıyor
Mart'ta

2
Bu çözümü denedim ve kullandığım veritabanı "kayboldu"! Bunun nedeni olduğuna inanıyorum: homebrew tarafından sağlanan varsayılan plist mongod yapılandırmasını /usr/local/etc/mongod.conf adresinde saklar. Bu yapılandırma, db yolunu varsayılan / data / db yerine / usr / local / var / mongodb olarak belirtir. Başka birine olursa bunu not etmek istedim. Veritabanımın tekrar görünmesini sağlamak için sembolik bağlantıyı kaldırmam ve kaldırmam gerekiyordu.
ttemple

1
Not: İçeride biraz gariplik launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plistvartmux
kqw

@ttemple bunların nasıl geri alınacağı hakkında bir fikriniz var mı?
Zamansız

73

Homebrew'un servicesmusluk formülleri launchctlyönetici ile bütünleştirir . Eklemek kolaydır:

brew tap homebrew/services

Daha sonra bu komutla MongoDB'yi başlatabilirsiniz (bu aynı zamanda önyükleme sırasında mongodb da başlayacaktır):

brew services start mongodb

Ayrıca kullanabilir stopveya restart:

brew services stop mongodb
brew services restart mongodb

4
Cevabı sevdim ama demlemek gelecekte hizmetleri kaldıracak bulundu. demlemek hizmetleri mongodb başlatmak Uyarı: demlemek hizmetleri desteklenmez ve yakında kaldırılacaktır.
smile2day

1
Bu üzücü bir haber. Şimdilik sadece kullanımdan kaldırıldı, yani bir zamanlar kaldırılacak, ancak hala çalışıyor. Umarım birisi bir musluk gibi korumak için gönüllü olacaktır. Yanıtım kaldırıldığında veya bir musluk kullanılabilir hale geldiğinde güncelleyeceğim.
Gergo Erdosi


Error: Unknown command: servicesBu şekilde çalıştığımı gördüğüm için zaten kaldırıldı .
iplus26

1
Bu cevap için teşekkürler. @ iplus26 hala benim için çalışıyor
philip oghenerobo balogun


3

MongoDB'yi Homebrew üzerinden yükledim. Kurulum konsolunun sonunda, aşağıdaki gibi bir çıktı görebilirsiniz:

Mongodb'u başlatmak için:

brew services start mongodb

Veya bir arka plan hizmetine ihtiyacınız yoksa / ihtiyacınız varsa, şunları yapabilirsiniz:

mongod --config /usr/local/etc/mongod.conf

Yani, demlemek hizmetler MongoDB başlamak benim için bir hizmet olarak MongoDB çalıştırmak başardı.


2

Mac tarafında biraz etrafa baktım. Yükleyiciyi Mac OS'de otomatik olarak başlatmanız için gereken tüm ayarları yaptığı gibi burada kullanmak isteyebilirsiniz . Tek dezavantajı, oldukça eski bir mongo sürümü kullanıyor gibi görünüyor.

Bu bağlantı burada da Mongo otomatik Mac üzerinde bir arka plan servisi olarak başlatılması almak için kurulum açıklar.


1
Bağlantı artık mevcut değil.
Hoppo

1
tam olarak aynı olup olmadığından emin değilim, ancak aynı kavramı açıklayan makaleye gitmek için sabit bağlantı
Scott

0

İlk adım

ling makinenize mongodb yükleyin

apt mongodb-istemcisini & & apt mongodb-sunucusunu yükleyin

ikinci adım

isterseniz sistem varsayılan yolunuz yerine veritabanı yolunu değiştirin.
aşağıdaki adımları uygulayın ve kendiniz değiştirin.

mongod --directoryperdb --dbpath /var/lib/mongodb/data/db --logpath /var/lib/mongodb/log/mongodb.log --logappend --rest

ve windows makinenizde tıpkı bir --install bayrağını koyduğunuz gibi yapın. başarılı bir mesaj almalısınız.

Saygılarımla...


0

MongoDB 4.0 ile macOS 10.13.6'da

Mongo kabuğundan localhost'a bağlanamadım

MongoDB'yi şununla başladım:

mongod --config /usr/local/etc/mongod.conf

Ben 'mongod.conf' vardı:

bağlama: 127.0.0.1

JavaScript bağlantımı localhost yerine 127.0.0.1 olarak değiştirin ve sorunsuz çalıştı.

Aynı şey MongoDB Compass için de geçerliydi.



0

Mongodb'u demleme yoluyla kurduktan sonra, çalıştırmak ve çalıştırmak için bunu çalıştırın:

mongod --dbpath /usr/local/var/mongodb

2
@ Rejeev-Divakaran'ın beş yıl önce verdiği aynı cevap bu. Lütfen yeni bir yanıt göndermeden önce mevcut cevapları kontrol ettiğinizden emin olun. Aynı yaklaşımınızı öneren bir kişi varsa, uygun eylem, onu değerlendirmektir - dört itibar puanı aldıktan sonra kazanacağınız bir ayrıcalık olduğuna inanıyorum.
Jeremy Caney

0
mongod --dbpath [path_to_data_directory]

2
OP, etkileşimli olarak değil, bir hizmet olarak çalıştırmak istiyor. İyi bir cevap bunu doğrudan ele almalıdır.
paulmelnikow
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.