Не удается подключиться к mongodb с помощью IP-адреса компьютера

установлен Mongo используя homebrew. Если я наберу mongo на оболочке он подключается к test. Но когда я набираю ip address локальной машины вместо 127.0.0.1

mongo --host 192.168.1.100 --verbose

это дает мне сообщение об ошибке

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

попробовали изменить mongo.conf комментарий bind_ip или путем изменения IP-адреса 127.0.0.1 to 0.0.0.0 но не повезло. Это должно быть просто, но сейчас понятия не имею. С помощью мак.

спасибо

обновление: по запросу. Это работает после того, как я внес изменения, как вы предложили.

вывод 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

вывод при выполнении команды 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
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`

2 ответов


Я только что протестировал это на своем Mac с Homebrew, отлично работает если вы меняете адрес привязки. Я подозреваю, что вы, вероятно, просто не получили конфигурацию для привязки правильно?

так же, как у нас есть вся информация, вы можете вставить вывод ifconfig пожалуйста?

по умолчанию MongoDB должен прослушивать все интерфейсы, вам не нужно менять конфигурацию, однако настройка Homebrew, похоже, переопределяет это (/usr / local/etc / mongod.conf):

# Only accept local connections
bind_ip = 127.0.0.1

пожалуйста, убейте MongoDB и запустите это (обратите внимание на-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

просто вставьте свой вывод для этого, пожалуйста?

а затем просто попробуйте:

$ 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
> 

очевидно, замените его своим IP-адресом. Дайте нам знать, как это происходит.


нет Фактически, если вы хотите получить доступ к интерфейсу rest с любого ip, вам не нужно устанавливать bind_ip в 0.0.0.0 в mongod.conf, вы только комментируете или удаляете элемент конфигурации из него, как

#bind_ip=127.0.0.1

и затем, перезагрузите службу, вы можете найти, что вы можете получить доступ к службе rest из порта 28017 с Вашего компьютера