需要用到 sshtunnel库,代码如下:
import pymysql from sshtunnel import SSHTunnelForwarder def onlinemysql(sql_select): """使用pymysql模块通过SSHTunnelForwarder隧道连接mysql""" with SSHTunnelForwarder( (‘跳板机服务器地址‘ , 8066), #B机器的配置 ssh_password=‘跳板机账号密码‘, ssh_username=‘跳板机账号用户名‘, remote_bind_address=(‘服务器地址‘ , 8066)) as server: #A机器的配置 db = pymysql.connect(host=‘127.0.0.1‘, #此处必须是是127.0.0.1 port=server.local_bind_port, user=‘服务器账号用户名r‘, passwd=‘服务器账号密码‘, charset = ‘utf8‘, db=‘服务器连接数据库名‘) # 使用 cursor() 方法创建一个游标对象 cursor # 设置游标类型,默认游标类型为元祖形式 # 将游标类型设置为字典形式 cursor = db.cursor(cursor=pymysql.cursors.DictCursor) # 使用 execute() 方法执行 SQL 查询 cursor.execute(sql_select) db.commit() # 使用 fetchone() 方法获取单条数据. data = cursor.fetchone() print("通过mysql查询到的数据 : %s " % data) # 关闭数据库连接 db.close() return data