通过ssh管道连接内同一内网数据库

基于 python 3 

跳板机和目标机处于同一内网,在外网仅可访问跳板机,

import pymysql as mysql

from sshtunnel import SSHTunnelForwarder

server = SSHTunnelForwarder(('IP', 'PORT'),  # 跳板机ip及端口

                            ssh_username='USERNAME',  # 跳板机账号

                            ssh_password='PASSWORD',  # 跳板机密码

                            remote_bind_address=('DATABASE_IP', 'DATABASE_PORT'))  # 目标数据库服务器ip、端口
server.start()  # 启动连接管道
conn = mysql.connect(
    host='127.0.0.1',  # 此处必须是是127.0.0.1
    port=server.local_bind_port,  # api固定写法
    user='USERNAME',  # 目标数据库账号
    passwd='PASSWORD',  # 目标数据库密码
    db='DATABASE_NAME')  # 目标数据库名称
cur = conn.cursor()  # 获取数据库游标
sql = "select * from fq_wealth_user where login_name='test888';"
cur.execute(sql)  # 执行sql
AllData = cur.fetchall()  # 获取所有执行sql的结果
print(AllData)
# conn.commit()
cur.close()  # 关闭游标
conn.close()  # 关闭数据库连接

 

posted @ 2022-01-19 22:25  Orientation  阅读(91)  评论(0编辑  收藏  举报