python 通过ssh 连接 mongodb

废话少说

# -*- coding: utf-8 -*-
# @Time    : 2018/7/31
# @Author  : cy
from configparser import ConfigParser
import pymongo
from sshtunnel import SSHTunnelForwarder
from run_path import setting_path


def get_mongodb_client():
    config = ConfigParser()
    path = setting_path()
    config.read(path)
    # 跳板机参数
    ecs_host = config.get('ssh', 'host')
    ecs_user = config.get('ssh', 'user')
    ecs_password = config.get('ssh', 'password')

    # 云mongo 配置
    mongo_host = config.get('mongo', 'host')
    mongo_database = config.get('mongo', 'database')
    mongo_account = config.get('mongo', 'user')
    mongo_password = config.get('mongo', 'password')

    host = mongo_host
    server = SSHTunnelForwarder(
        ssh_address_or_host=ecs_host,
        ssh_password=ecs_password,
        ssh_username=ecs_user,
        remote_bind_address=(host, 27017))

    server.start()

    uri = "mongodb://%s:%s@%s/%s?authMechanism=SCRAM-SHA-1" % (mongo_account, mongo_password, mongo_host, mongo_database)
    client = pymongo.MongoClient(uri)
    return client


 

 

需要注意的问题就是 端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值