Показать мой код
conf.set( "mongo.input.uri" , "mongodb://127.0.0.1/stackoverflow.mrtest" );
conf.set( "mongo.output.uri" , "mongodb://127.0.0.1/stackoverflow.mrtest_out2" );
код запускается без ошибок, если хост является localhost
или 127.0.0.1
. Но когда хост изменил мой ip wlan0 192.168.1.102
, он возвратил следующую ошибку
Cluster created with settings {hosts=[192.168.1.102:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Exception in monitor thread while connecting to server 192.168.1.102:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.connection.SocketStream.open(SocketStream.java:63)
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:114)
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:127)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50)
at com.mongodb.connection.SocketStream.open(SocketStream.java:58)
... 3 more
Я открыл порт 27017.
sudo iptables -A INPUT -ptcp --dport 27017 -j ACCEPT
Моя ОС - Ubuntu 14.04.
Как его исправить? Спасибо!
По умолчанию MongoDB привязывается только к интерфейсу loopback, что делает его доступным только с localhost. Чтобы изменить это, вам нужно отредактировать эту строку в файле mongod.conf
;
# /etc/mongod.conf
# Listen to local interface only. Comment out to listen on all interfaces.
bind_ip = 127.0.0.1
вы можете изменить его на bind_ip = 127.0.0.1,192.168.1.102
чтобы разрешить локальные и локальные подключения, или вы можете удалить или прокомментировать эту строку, чтобы разрешить все подключения.
Для получения дополнительной информации: MongoDB - разрешить удаленный доступ