1. 程式人生 > 其它 >python開發包之遠端隧道連結sshtunnel

python開發包之遠端隧道連結sshtunnel

緣起:

       公司很多的資料庫的連結都是本地連線或者指定ip地址可以訪問, 如果你沒有該ip許可權, 但是你可以登入該資料庫所在的伺服器, 這個時候就可以使用ssh連結上這個伺服器,以此為跳板進行資料庫的連結.同樣Navicat也是支援這種操作的.但是開發中也要這種處理方式就需要sshtunnel包的輔助

 

github: https://github.com/pahaz/sshtunnel

 

 

安裝:

pip install sshtunnel

 

使用:

import pymysql
import traceback
from loguru import logger
from
sshtunnel import SSHTunnelForwarder with SSHTunnelForwarder( ssh_address_or_host=ssh_config['ssh'], ssh_username=ssh_config['username'], ssh_password=ssh_config['password'], remote_bind_address=mysql_config['mysql'] ) as server: conn_config
= dict( host='127.0.0.1', port=server.local_bind_port, user=mysql_config['user'], passwd=mysql_config['passwd'], ) try: conn = pymysql.connect(**conn_config) with conn.cursor(pymysql.cursors.DictCursor)
as cursor: sql = 'SELECT VERSION()' cursor.execute(sql) res = cursor.fetchone() logger.info('Connect Success. result: {}'.format(res)) except Exception: logger.error('Connect Error. msg: {}'.format(traceback.format_exc()))