pymysql 通过ssh通道调用

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

代码如下

import pymysql
from sshtunnel import SSHTunnelForwarder

with SSHTunnelForwarder(
        ("ssh服务器地址", 22),
        ssh_username="user",
        ssh_pkey="/xxx/id_rsa",
        # ssh_private_key_password="secret",
        remote_bind_address=('mysql地址', 3306),
        local_bind_address=('0.0.0.0', 10022)
) as tunnel: 

    print("connected")
    conn = pymysql.connect(host='127.0.0.1',  # 此处必须是是127.0.0.1
                           port=10022,
                           user='user',
                           passwd='password')

    cur = conn.cursor()
    cur.execute("show databases")
    print(cur.fetchall())

 password的ssh类似

posted @ 2017-09-11 15:02  hyfwin  阅读(3029)  评论(1编辑  收藏  举报