MongoChefを使用してリモートmongoデータベースに接続するとき、次のパラメーターを使用します。
サーバー
SSHトンネル
SSHアドレス:10.1.0.90
ポート:25
SSHユーザー名:ユーザー名
SSHパスワード:パスワード
Pymongoに接続すると、次のコードがあります。
import pymongo
MONGO_Host = "10.1.0.90"
MONGO_PORT = 25
MONGO_DB = "db_name"
MONGO_USER = "username"
MONGO_PASS = "password"
con = pymongo.MongoClient(MONGO_Host, MONGO_PORT)
db = con[MONGO_DB]
db.authenticate(MONGO_USER, MONGO_PASS)
print(db)
しかし、私は次のエラーがあります:
pymongo.errors.ServerSelectionTimeoutError: 10.1.2.84:27017: [Errno 111] Connection refused
この問題で私を助けてくれませんか?私は何を間違えましたか?
私のために働く解決策。
from sshtunnel import SSHTunnelForwarder
import pymongo
import pprint
MONGO_Host = "REMOTE_IP_ADDRESS"
MONGO_DB = "DATABASE_NAME"
MONGO_USER = "LOGIN"
MONGO_PASS = "PASSWORD"
server = SSHTunnelForwarder(
MONGO_Host,
ssh_username=MONGO_USER,
ssh_password=MONGO_PASS,
remote_bind_address=('127.0.0.1', 27017)
)
server.start()
client = pymongo.MongoClient('127.0.0.1', server.local_bind_port) # server.local_bind_port is assigned local port
db = client[MONGO_DB]
pprint.pprint(db.collection_names())
server.stop()