簡體   English   中英

在使用 python、pymysql 和 SSHTunnel 進行查詢期間丟失與 MySQL 服務器的連接

[英]Lost connection to MySQL server during query using python,pymysql & SSHTunnel

我正在使用 SSHTunnel 連接到 Mysql。我打算將所有表從數據集中導出到 CSV。這是代碼

def OpenSSHTunnel():
    global server
    server = SSHTunnelForwarder(
        ('*.*.*.*', 22),  
        ssh_username="",  
        ssh_pkey="C:/Users/Administrator/Desktop/***",
        remote_bind_address=('*.*.*.*', 3306),
        local_bind_address=('0.0.0.0', 10022))

def exportToCsv(db):
    conn = pymysql.connect(host='127.0.0.1', 
                           port=10022,
                           user='**', 
                           passwd='**',
                           db=db)
    cur = conn.cursor()
    #cur.execute("set global max_allowed_packet=67108864")

    # RETRIEVE TABLES
    cur.execute("SHOW TABLES")
    tables = []
    for row in cur.fetchall():
        tables.append(row[0])

    for t in tables:    
        # SELECT STATEMENTS
        cur.execute("SELECT * FROM `{}`".format(t))
        tempcsv = '{}.csv'.format(t)
        rows = cur.fetchall()

        fp = open(tempcsv, 'w',newline='',encoding='utf-8')
        writer = csv.writer(fp)
        writer.writerow([i[0] for i in cur.description])   # COLUMN HEADERS
        writer.writerows(rows)
        fp.close()

我收到錯誤“2013,‘在查詢期間與 MySQL 服務器失去連接’”,那么有沒有辦法解決這個問題?

我嘗試設置全局 max_allowed_packet,但出現錯誤“1227,‘訪問被拒絕;您需要(至少之一)超級權限才能執行此操作’”

我不能告訴你為什么,但我遇到了這個問題,它與 SSH 隧道有關。 出於某種原因,從方法“返回”隧道/連接並傳遞它似乎不起作用。 我嘗試在主要方法中完成隧道和連接內的所有操作,並為我修復了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM