pymysql 连接需要 ssh 跳转的 mysql

需要用到 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

 

posted @ 2020-05-19 10:46  showzvan  阅读(382)  评论(0)    收藏  举报