python sshtunnel 简单介绍【图文】_chinayyj2012

背景,公司的很多服务包括数据库访问都需要通过跳板机访问,为日常工作及使用带来了麻烦,特别数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()

China-测试开发】技术交流群期待你的加入【 193056556

欢迎扫码关注:日益】微信订阅号【 riyi18

python sshtunnel 简单介绍【图文】_chinayyj2012

本站由小牛团队全力维护,小牛十年了,大家已经步入中年 。本站源码全部经过团队成员测试并调试,价格可能比其它网站略贵几元钱,不解释!
小牛资源 » python sshtunnel 简单介绍【图文】_chinayyj2012

发表评论

全站资源亲测可用,价格略高几元,不解释

立即查看 了解详情