2012-11-28 19 views
16

, çoğaltma yapılandırma ile üzerinde başlatılıyor. Yanlış yaptığım şey, her iki düğümde rs.initialize() yaptım, bu da onları bir şekilde karıştırdı. Emin değilim. MongoDB içinde çoğaltma kümeleri yapılandırırken bir hata yaptım MongoDB

Şimdi tek istediğim baştan başlamak, ama bir düğüm de-başlatmak için bir yol bulamadık. Bu yüzden, yerel * db dosyalarını silme tavsiyelerini takip ettim, böylece konfigürasyonları sıfırladı. Bunu yaptım ve şimdi hiçbir şey işe yaramıyor.
> rs.initiate() 
{ 
    "info2" : "no configuration explicitly specified -- making one", 
    "me" : "0.0.0.0:27017", 
    "errmsg" : "couldn't initiate : can't find self in the replset config", 
    "ok" : 0 
} 
> rs.conf() 
null 

ben kaldırıp sadece benim mongodb.conf kayboldu ve benim init komut çalışmayı durdurdu anlamına geliyordu paketi (Ubuntu sunucularında yapıyorum) yeniden çalıştı. Bu elbette çözecek kadar kolay.

Peki nasıl yeniden başlamak mı?

Not: this answer'a baktım, ancak rs.conf() çalışmadığından bu işe yaramıyor.

cevap

25

Oluşturduğunuz bir yapılandırmayla bir yeniden yapılandırma zorlarsanız, sorunu çözer mi? can't find self in new replset config hata olarak geri dönecektir,

> cfg = { 
...  "_id" : "rs0", 
...  "version" : 1, 
...  "members" : [ 
...   { 
...    "_id" : 0, 
...    "host" : "0.0.0.0:27017" 
...   } 
...  ] 
... } 

>rs.reconfig(cfg, {force:true}) 

Sen hostname ve portname olması ayarlamak için cfg değişken gerekebilir:

Sen {{Mongo}} kabuğundan takip için bu benzer yapabilirdi repl set, config dosyasından çalıştırdığı düğümü bulamıyorsa, shell'e.

+5

Ben aksi takdirde bu mükemmel çalıştı, 'yerine rs.reconfig'' arasında 'rs.initiate (cfg) kullanmak zorunda kaldı! – obeq

+2

benim için çalıştı, ben "host": "127.0.0.1:27017" ve "rs.initiate" kullanmak zorunda kaldı. ubuntu üzerinde Mongo sunucusu '2.0.4-1ubuntu2.1' – danza

+0

kesin Ben de beni sayesinde sorunu düzeltildi rs.initiate (cfg) – machunter

54

Ayrıca, makinenizin ana bilgisayar adı 127.0.0.1 ile eşlenmiyorsa bu hatayı alırsınız./Etc/hosts dosyanızı ve/veya/etc/hostname dosyanızı güncelleyin ve hiçbir config yapmadan rs.initiate() dosyasını çalıştırmalısınız.

+2

kullanmak zorunda kaldı. Ana makine adınızı bir bulut örneğinde değiştirirseniz, yeni ana makine adını/etc/hosts alanına eklediğinizden emin olun. –

+1

Ayrıca, bu sorunun, atanmış IP adresinizin de/etc/mongod'unuzdaki bind_ip ayarına da bağlı olduğundan emin olduğumu da düzelttim. conf dosyası. Görünüşe göre 127.0.0.1'e bağlı olmak her zaman yeterli değildir. – Felby

+2

Benzer bir şey yapmam gerekiyordu: LAN IP çözümlendi, ancak 127.0.0.1 değil, her ikisi de - 'bind_ip = 10.10.1.1,127.0.0.1' ekledim. –

9

sen sadece oluşturmak veya çoğaltma reconfig için rs.initiate() komutu yeniden böylece doğru sonucu elde edecek /etc/mongod.conf bu bind_ip dışarı yorum yaparsanız.