I'm trying to establish a connection with a MongoDB database via an SSH connection programmatically from python. I can create a MongoClient object to connect locally but I can't see how to establish an SSH connection for my MongoClient to use.
How would I do this?
First make sure you have no local MongoDB running on your machine, then ssh to the server where MongoDB is running:
ssh -L 27017:MYHOST:27017 MYUSER@MYHOST
Replace MYUSER and MYHOST with your username and host. Then, in another terminal window, run the "mongo" shell from your local computer. By default it connects to localhost:27017, which you've port-forwarded to the remote host. The "mongo" shell should connect correctly.
Then, create a PyMongo connection normally in Python:
>>> from pymongo import MongoClient
>>> c = MongoClient()
>>> c.test.command('buildinfo')
...
More info about SSH tunneling here:
https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
This is not MongoDB-specific at all, any network protocol can be tunneled with SSH port-forwarding.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.