Не удается подключиться к 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 с Вашего компьютера