2013-08-23 18 views
7

Zainstalowany Mongo przy użyciu homebrew. Jeśli wpiszesz w powłoce nazwę mongo, zostanie ona połączona z test. Ale kiedy wpisać ip address lokalnej maszynie zamiast 127.0.0.1Nie można połączyć się z mongodb przy użyciu komputera ip

mongo --host 192.168.1.100 --verbose 

To daje mi komunikat o błędzie

MongoDB shell version: 2.4.6 
Fri Aug 23 15:18:27.552 versionArrayTest passed 
connecting to: 192.168.1.100:27017/test 
Fri Aug 23 15:18:27.579 creating new connection to:192.168.1.100:27017 
Fri Aug 23 15:18:27.579 BackgroundJob starting: ConnectBG 
Fri Aug 23 15:18:27.580 Error: couldn't connect to server 192.168.1.100:27017 at src/mongo/shell/mongo.js:147 
Fri Aug 23 15:18:27.580 User Assertion: 12513:connect failed 

Próbowałem modyfikowanie mongo.conf komentując bind_ip lub poprzez zmianę adresu IP z 127.0.0.1 do 0.0.0.0 ale bez powodzenia. To powinno być proste, ale nie mam teraz pojęcia. Korzystanie z mac.

Dzięki

Aktualizacja: Zgodnie z życzeniem. Działa to po wprowadzeniu zmian zgodnie z sugestią.

wyjście ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 
    options=3<RXCSUM,TXCSUM> 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    inet 127.0.0.1 netmask 0xff000000 
    inet6 ::1 prefixlen 128 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 
stf0: flags=0<> mtu 1280 
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING> 
    ether XX:XX:XX: 
    media: autoselect (none) 
    status: inactive 
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    ether XX:XX:XX:XX:01 
    inet6 XXXX:XXXX:XXXX: %en1 prefixlen 64 scopeid 0x5 
    inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255 
    media: autoselect 
    status: active 
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304 
    ether XX:XX:XX:XX:XX 
    media: autoselect 
    status: inactive 
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078 
    lladdr XX:XX:XX:XX 
    media: autoselect <full-duplex> 
    status: inactive 

wyjścia podczas wykonywania poleceń mongo --host 192.168.1.100 --verbose

MongoDB shell version: 2.4.5 
Fri Aug 23 16:42:09.806 versionArrayTest passed 
connecting to: 192.168.1.100:27017/test 
Fri Aug 23 16:42:09.837 creating new connection to:192.168.1.100:27017 
Fri Aug 23 16:42:09.837 BackgroundJob starting: ConnectBG 
Fri Aug 23 16:42:10.129 connected connection! 
Server has startup warnings: 
Fri Aug 23 16:41:59.025 [initandlisten] 
Fri Aug 23 16:41:59.025 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000 

pliku mongod.conf

# Store data in /usr/local/var/mongodb instead of the default /data/db 
dbpath = /usr/local/var/mongodb 

# Append logs to /usr/local/var/log/mongodb/mongo.log 
logpath = /usr/local/var/log/mongodb/mongo.log 
logappend = true 

# Only accept local connections 
bind_ip = 0.0.0.0` 
+0

kwestie zapory byłoby moje pierwsze przypuszczenie. Nie znam Maków, więc nie mogę cię skierować dalej. –

+0

Próbowałem z 'no firewall' na komputerze Mac i na tym samym komputerze.Mogę pingować się używając ip, ale nie mogę połączyć się przez mongo. –

Odpowiedz

14

Właśnie to przetestowane na moim komputerze Mac z Homebrew, działa dobrze jeśli cię zmienić adres wiązania. Podejrzewam, że prawdopodobnie nie udało ci się poprawnie skonfigurować konfiguracji bindowania?

Po prostu mamy wszystkie informacje, czy możesz wkleić wyjście ifconfig, proszę?

Domyślnie MongoDB powinien słuchać na wszystkich interfejsach, nie ma potrzeby, aby zmienić konfigurację, jednak Homebrew konfiguracja zdaje się przesłaniać to (/usr/local/etc/mongod.conf):

# Only accept local connections 
bind_ip = 127.0.0.1 

Proszę zabić MongoDB i uruchomić ten (uwaga na -v):

$ mongod --bind_ip 0.0.0.0 -v 
warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default 
all output going to: /usr/local/var/log/mongodb/mongo.log 

Wystarczy wkleić swoje wyjście dla tego proszę?

A potem po prostu spróbuj:

$ mongo --host 192.168.43.2 --verbose 
MongoDB shell version: 2.4.6 
Sat Aug 24 09:07:14.556 versionArrayTest passed 
connecting to: 192.168.43.2:27017/test 
Sat Aug 24 09:07:14.657 creating new connection to:192.168.43.2:27017 
Sat Aug 24 09:07:14.657 BackgroundJob starting: ConnectBG 
Sat Aug 24 09:07:14.657 connected connection! 
Server has startup warnings: 
Sat Aug 24 09:06:44.360 [initandlisten] 
Sat Aug 24 09:06:44.360 [initandlisten] ** WARNING: soft rlimits too low. Number of files  is 256, should be at least 1000 
> 

Oczywiście zastąpić go swojego adresu IP. Daj nam znać, jak to działa.

+1

Ale wciąż go nie dostaję. Dlaczego to nie zadziałało, gdy zmodyfikowałem plik 'mongo.conf', aby zaakceptować' bind_ip 0.0.0.0' –

+0

@java_dude Hmm, to brzmi dziwnie. Czy możesz sprawdzić plik '/ usr/local/var/log/mongodb/mongodb.log'? – victorhooi

+0

Czego należy szukać w pliku dziennika? BTW, zaktualizowane pytanie z 'mongod.conf' content –

0

No W rzeczywistości, jeśli chcesz uzyskać dostęp do interfejsu reszta z dowolnego ip, nie musisz ustawić bind_ip na 0.0.0.0 w mongod.conf, tylko komentarz lub usunąć element konfiguracji z niego, jak podobne jak

#bind_ip=127.0.0.1 

, a następnie ponownie uruchomić usługę, można zauważyć, że można uzyskać dostęp do usługi odpoczynek od portu na 28017 z komputera

+0

to jest zła praktyka! –

Powiązane problemy