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()

原文地址:https://www.cnblogs.com/BlueSkyyj/p/9188414.html

时间: 2024-10-24 07:11:02

python sshtunnel 简单介绍的相关文章

Python的简单介绍/解释器/变量/变量的数据类型/用户交互及流程控制(if)

一.Python的简单介绍 1.python是一门 解释型弱类型编程语言. 2.特点: 简单.明确.优雅 二.python的解释器有哪些 CPython -- 官方提供的.,内部使用c语言来实现 IPython -- IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的.好多很多国产浏览器虽然外观不同,但内核其实都是调用了IE PyPy -- PyPy是另一个Python解释器,它的

python lambda简单介绍

python lambda 在python中,如果想要创建函数需要使用关键字def,而如果想要创建匿名函数,就需要使用lambda. lambda创建的函数和def创建的函数有什么区别? def创建的函数是有名称的,而lambda没有 lambda会创建一个函数的对象,但是却不会把对象给一个标识符,而def 会把函数对象赋值给一个变量 def 是一条语句,而lambda它只是一个表达式 y = lambda x:print(x)y(10) # 10 例如上面,通过lambda创建了一个表达式,x

Python基础-linux/window下python安装简单介绍

1.linux安装python linux : 无需安装,自带原装Python环境 2. linux更新python2.7.5-python3.7.4 一.查看当前linux安装的python版本 [[email protected] ~]# python -VPython 2.7.5 二.安装gcc,用于编译Python源码 [email protected] soft]#yum install gcc gcc-c++ -y  三.下载最新的python包并安装 进入python官网(http

python的简单介绍

一.python特性概要 1.python是解释型语言,c是编译型语言 脚本解释性语言的内部机制,在运行脚本之后,得到结果之前需要做的工作 1.python先将脚本编译成字节码文件(pyc,pyo) 2.python虚拟机解释并运行字节码文件 # cat hello.py print 'Hello world' # python hello.py Hello world # cat hello.py print 'Hello guys' # python hello.py  #修改之后,不需要编

python虚拟环境简单介绍

什么是python虚拟环境? 通俗的来讲,虚拟环境就是从电脑独立开辟出来的环境,相当于一个副本或备份,在这个环境你可以安装私有包,而且不会影响系统中安装的全局Python解释器. 为什么要用虚拟环境 在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,如Scrapy.Beautiful Soup等,但是可能每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要我们根据需求不断的更新或卸载相应的库.直接怼我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,

python的列表,元组和字典简单介绍

引 入 java                                   python 存取多个值:数组或list集合 ------------------------> 列表,元组 key-value格式:    Map        ------------------------>    字典 自己学习发现,java跟python这两门面向对象语言在数据类型的定义上,很多思想都是互通的,这里不说java,简单介绍一下python的列表,元组和字典. 一.列表 List: 最通

Python 爬虫(1)简单介绍

Python上手很容易,免费开源,跨平台不受限制,面向对象,框架和库很丰富. Python :Monty Python's Flying Circus (Python的名字来源,和蟒蛇其实无关). 通过homebrew和pyenv可以维护多个Python版本. 相关知识 HTML HTTP = HyperText Transfer Protocol URI = Uniform Resource Identifier 强调资源 URL = Uniform Resource Locator 强调资源

利用 Python 进行数据分析(四)NumPy 基础:ndarray 简单介绍

一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 二.ndarray 是什么 ndarray 是一个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点. ndarray 的一个特点是同构:即其中所有元素的类型必须相同. 三.ndarray 的创建 array() 函数 最简单的方法, 使用 NumPy 提供的

【美妙的Python之中的一个】Python简单介绍及环境搭建

美妙的Python之Python简单介绍及安装         简而言之: Python 是能你无限惊喜的语言,与众不同.             1.Python:          Python英文意思为蟒蛇,故又称为蟒蛇语言,在图标设计上有所体现,贵铎·范·罗萨姆(Guido van Rossum)于1989年创立.Python的特质,简单,优雅,健壮,继承传统编程语言的强大性与通用性,同一时候兼具简单脚本的简单性.         Python的哲学:仅仅用一种方法,最好是仅仅有一种方法