美文网首页
pymysql 怎么连接需要通过 ssh 跳转的数据库呢

pymysql 怎么连接需要通过 ssh 跳转的数据库呢

作者: cokeonemore | 来源:发表于2019-01-21 21:53 被阅读0次

    本地无法连接mysql,必须连到服务器上才能访问到msyql,gui工具一般都支持,python的话需要用到sshtunnel库。

    代码如下:

    import pymysql
    from sshtunnel import SSHTunnelForwarder
    
    def onlinemysql(sql_select):
    
        """使用pymysql模块通过SSHTunnelForwarder隧道连接mysql"""
    
        with SSHTunnelForwarder(
                 ('跳板机服务器地址' , '跳板机port'),    # B机器的配置
                 ssh_password='跳板机密码',
                 ssh_username='跳板机用户名',
                 remote_bind_address=('数据库服务器地址' ,  '数据库port')) as server:  # A机器的配置
    
            db = pymysql.connect(host='127.0.0.1',              # 此处必须是是127.0.0.1
                                   port=server.local_bind_port,
                                   user='数据库服务器用户名',
                                   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

    相关文章

      网友评论

          本文标题:pymysql 怎么连接需要通过 ssh 跳转的数据库呢

          本文链接:https://www.haomeiwen.com/subject/kgghjqtx.html