多平台统一管理软件接口,如何实现多平台统一管理软件接口
452
2022-09-01
python开发包之远程隧道链接sshtunnel(python隧道代理)
缘起:
公司很多的数据库的链接都是本地连接或者指定ip地址可以访问, 如果你没有该ip权限, 但是你可以登录该数据库所在的服务器, 这个时候就可以使用ssh链接上这个服务器,以此为跳板进行数据库的链接.同样Navicat也是支持这种操作的.但是开发中也要这种处理方式就需要sshtunnel包的辅助
github: install sshtunnel
使用:
import pymysqlimport tracebackfrom loguru import loggerfrom sshtunnel import SSHTunnelForwarder
ssh_config={ 'ssh': ('x.x.x.x', 22), 'username': 'x', 'password': 'x', }, 'mysql_config': { 'mysql': ('xx.xx.xx.xx', 3306), 'user': 'xx', 'passwd': 'xx', } }
with SSHTunnelForwarder( ssh_address_or_host=ssh_config['ssh'], # 远程登录服务器的ip和端口(元组表示) ssh_username=ssh_config['username'], # 登录用户名 ssh_password=ssh_config['password'], # 登录密码 remote_bind_address=mysql_config['mysql'] # mysql的ip+端口 ) as server: conn_config = dict( host='127.0.0.1', # 一般是固定 port=server.local_bind_port, # 端口保持一致 user=mysql_config['user'], # mysql的用户名 passwd=mysql_config['passwd'], # mysql的密码 ) 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()))
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~