Created
November 19, 2017 16:39
-
-
Save JinhaiZ/3ad536870b9853dbff11ab4241380c0d to your computer and use it in GitHub Desktop.
connect to MongoDB via ssh tunnel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from sshtunnel import SSHTunnelForwarder | |
import pymongo | |
MONGO_HOST = "IP_ADDRESS" | |
MONGO_USER = "USERNAME" | |
MONGO_PASS = "PASSWORD" | |
MONGO_DB = "DATABASE_NAME" | |
MONGO_COLLECTION = "COLLECTION_NAME" | |
# define ssh tunnel | |
server = SSHTunnelForwarder( | |
MONGO_HOST, | |
ssh_username=MONGO_USER, | |
ssh_password=MONGO_PASS, | |
remote_bind_address=('127.0.0.1', 27017) | |
) | |
# start ssh tunnel | |
server.start() | |
connection = pymongo.MongoClient('127.0.0.1', 27017) | |
db = connection[MONGO_DB] | |
collection = db[MONGO_COLLECTION] | |
# close ssh tunnel | |
server.stop() |
how can resolve mongo DB connection issues
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
12:25:26.594 [main] WARN org.mongodb.driver.uri - Unsupported option 'directconnection' in the connection string 'mongodb://admin:[email protected]:27017/spades-user-service?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false'.
12:25:26.598 [main] WARN org.mongodb.driver.uri - Unsupported option 'appname' in the connection string 'mongodb://admin:[email protected]:27017/spades-user-service?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false'.
12:25:26.926 [main] INFO org.mongodb.driver.cluster - Cluster created with settings {hosts=[172.16.0.4:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
12:25:27.019 [main] DEBUG org.mongodb.driver.cluster - Updating cluster description to {type=UNKNOWN, servers=[{address=172.16.0.4:27017, type=UNKNOWN, state=CONNECTING}]
12:25:27.052 [main] INFO org.mongodb.driver.cluster - No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, serverDescriptions=[ServerDescription{address=172.16.0.4:27017, type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out
12:25:47.034 [cluster-ClusterId{value='6206085e556d8424d0cb8e49', description='null'}-172.16.0.4:27017] DEBUG org.mongodb.driver.connection - Closing connection connectionId{localValue:1}
12:25:47.059 [cluster-ClusterId{value='6206085e556d8424d0cb8e49', description='null'}-172.16.0.4:27017] INFO org.mongodb.driver.cluster - Exception in monitor thread while connecting to server 172.16.0.4:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.connection.SocketStream.open(SocketStream.java:63) ~[mongodb-driver-core-3.3.0.jar:na]
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115) ~[mongodb-driver-core-3.3.0.jar:na]
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:116) ~[mongodb-driver-core-3.3.0.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_311]
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_311]
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81) ~[na:1.8.0_311]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) ~[na:1.8.0_311]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) ~[na:1.8.0_311]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) ~[na:1.8.0_311]
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) ~[na:1.8.0_311]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) ~[na:1.8.0_311]
at java.net.Socket.connect(Socket.java:606) ~[na:1.8.0_311]
at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50) ~[mongodb-driver-core-3.3.0.jar:na]
at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongodb-driver-core-3.3.0.jar:na]
... 3 common frames omitted
12:25:47.067 [cluster-ClusterId{value='6206085e556d8424d0cb8e49', description='null'}-172.16.0.4:27017] DEBUG org.mongodb.driver.cluster - Updating cluster description to {type=UNKNOWN, servers=[{address=172.16.0.4:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.SocketTimeoutException: connect timed out}}]
com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=172.16.0.4:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.SocketTimeoutException: connect timed out}}]
at com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster.java:375)
at com.mongodb.connection.BaseCluster.selectServer(BaseCluster.java:104)
at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.(ClusterBinding.java:75)
at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.(ClusterBinding.java:71)
at com.mongodb.binding.ClusterBinding.getReadConnectionSource(ClusterBinding.java:63)
at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:212)
at com.mongodb.operation.FindOperation.execute(FindOperation.java:483)
at com.mongodb.operation.FindOperation.execute(FindOperation.java:80)
at com.mongodb.Mongo.execute(Mongo.java:818)
at com.mongodb.Mongo$2.execute(Mongo.java:805)
at com.mongodb.OperationIterable.iterator(OperationIterable.java:47)
at com.mongodb.FindIterableImpl.iterator(FindIterableImpl.java:143)
at DBConnecter.MongoDBSSh.main(MongoDBSSh.java:67)
Exception in thread "main" com.jcraft.jsch.JSchException: PortForwardingL: local port 127.0.0.1:0 is not registered.
at com.jcraft.jsch.PortWatcher.delPort(PortWatcher.java:118)
at com.jcraft.jsch.Session.delPortForwardingL(Session.java:1876)
at com.jcraft.jsch.Session.delPortForwardingL(Session.java:1865)
at DBConnecter.MongoDBSSh.main(MongoDBSSh.java:95)
12:26:07.575 [cluster-ClusterId{value='6206085e556d8424d0cb8e49', description='null'}-172.16.0.4:27017] DEBUG org.mongodb.driver.connection - Closing connection connectionId{localValue:2}
12:26:37.598 [cluster-ClusterId{value='6206085e556d8424d0cb8e49', description='null'}-172.16.0.4:27017] DEBUG org.mongodb.driver.connection - Closing connection connectionId{localValue:3}
12:27:07.619 [cluster-ClusterId{value='6206085e556d8424d0cb8e49', description='null'}-172.16.0.4:27017] DEBUG org.mongodb.driver.connection - Closing connection connectionId{localValue:4}
12:27:37.632 [cluster-ClusterId{value='6206085e556d8424d0cb8e49', description='null'}-172.16.0.4:27017] DEBUG org.mongodb.driver.connection - Closing connection connectionId{localValue:5}