1.用compass community連接配接時:
2.用java程式連接配接時:
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.connection.SocketStream.open(SocketStream.java:62) ~[mongodb-driver-core-3.5.0.jar:na]
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:107) ~[mongodb-driver-core-3.5.0.jar:na]
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:111) ~[mongodb-driver-core-3.5.0.jar:na]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_171]
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_171]
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) ~[na:1.8.0_171]
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[na:1.8.0_171]
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[na:1.8.0_171]
at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_171]
at java.net.PlainSocketImpl.connect(Unknown Source) ~[na:1.8.0_171]
at java.net.SocksSocketImpl.connect(Unknown Source) ~[na:1.8.0_171]
at java.net.Socket.connect(Unknown Source) ~[na:1.8.0_171]
at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:59) ~[mongodb-driver-core-3.5.0.jar:na]
at com.mongodb.connection.SocketStream.open(SocketStream.java:57) ~[mongodb-driver-core-3.5.0.jar:na]
... 3 common frames omitted
原因:linux上的防火牆沒有關。
我是centos7,關閉防火牆:
systemctl stop firewalld.service
systemctl disable firewalld.service
開始防火牆:
systemctl start firewalld.service
systemctl enable firewalld.service
檢視防火牆狀态:
systemctl status firewalld
關閉之後可以正常連接配接。
補充:第二天連的時候發現連不上了,用systemctl status firewalld檢視防火牆是關閉的,百度了很久沒解決,無賴檢視了一下iptables的狀态:systemctl status iptables.service,發現時開啟的,centos7應該是沒這個指令的,不知道自己是什麼時候下的,然後把這個關閉後問題解決了。
關閉iptables:
systemctl stop iptables.service
systemctl disable iptables.service