显示我的代码
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。
我该如何解决?谢谢!
原文由 GoingMyWay 发布,翻译遵循 CC BY-SA 4.0 许可协议
默认情况下,MongoDB 只绑定到环回接口,这使得它只能从本地主机访问。要更改它,您需要在
mongod.conf
文件中编辑此行;您可以将其更改为
bind_ip = 127.0.0.1,192.168.1.102
以允许 LAN 和本地连接,或者您可以删除或注释掉该行以允许所有连接。有关详细信息: MongoDB – 允许远程访问