天天看點

用compass community和java程式連不上遠端linux上的mongodb問題解決

1.用compass community連接配接時:

用compass community和java程式連不上遠端linux上的mongodb問題解決

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