zoukankan      html  css  js  c++  java
  • python sshtunnel 简单介绍

    背景,公司的很多服务包括数据库访问都需要通过跳板机访问,为日常工作及使用带来了麻烦,特别数python直接操作数据更是麻烦了,所以一直想实现python 通过跳板机访问数据库的操作。

    安装

    pip3.6 install sshtunnel

    使用 sshtunnel 跳转登录数据库

    链接postgresql,其他数据类似

    # FileName : pgconn.py
    # Author   : Adil
    # DateTime : 2018/6/15 15:19
    # SoftWare : PyCharm
    import paramiko
    import psycopg2
    
    from sshtunnel import SSHTunnelForwarder
    # 获取密钥
    private_key = paramiko.RSAKey.from_private_key_file('/Users/yyj/.ssh/id_rsa')
    with SSHTunnelForwarder(
        # 指定ssh登录的跳转机的address
        ssh_address_or_host = ('jumphost',22),
        # 设置密钥
        ssh_pkey = private_key,
        # 如果是通过密码访问,可以把下面注释打开,将密钥注释即可。
        # ssh_password = "password"
        # 设置用户
        ssh_username = 'username',
        # 设置数据库服务地址及端口
        remote_bind_address= ('dbhost',dbport)) as server:
    
        conn = psycopg2.connect(database='dbname',
                                user='username',
                                password='password',
                                host='127.0.0.1',  # 因为上面没有设置 local_bind_address,所以这里必须是127.0.0.1,如果设置了,取设置的值就行了。
                                port=server.local_bind_port) # 这里端口也一样,上面的server可以设置,没设置取这个就行了
    
    
        print(conn)
    
        cur = conn.cursor()
        # 执行查询,查看结果,验证数据库是否链接成功。
        cur.execute("select * from t_table_data limit 1")
    
        rows = cur.fetchone()
    
        print(rows)
    
        conn.close()
  • 相关阅读:
    Java POI 导出EXCEL经典实现 Java导出Excel
    Sublime Text 3 相关
    phonegap 4.2 环境搭建 及 项目创建 运行
    Js 简单分页(一)
    VC调试闪退解决办法
    查找一个数中1的个数
    居中详解
    解决ajax跨域请求 (总结)
    js实现css3的过渡,需要注意的一点(浏览器优化)
    reflow和repaint(摘录自张鑫旭的翻译)
  • 原文地址:https://www.cnblogs.com/BlueSkyyj/p/9188414.html
Copyright © 2011-2022 走看看