【问题标题】:Lost connection to MySQL server during query using python,pymysql & SSHTunnel在使用 python、pymysql 和 SSHTunnel 查询期间丢失与 MySQL 服务器的连接
【发布时间】:2020-03-09 23:00:48
【问题描述】:

我正在使用 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, 'Lost connection to MySQL server during query'”那么有没有办法解决这个问题?

我尝试设置全局 max_allowed_pa​​cket,但出现错误“1227,'访问被拒绝;您需要(至少一个)超级权限才能执行此操作'”

【问题讨论】:

    标签: python mysql pymysql


    【解决方案1】:

    我无法告诉你为什么,但我遇到了这个问题,它与 SSH 隧道有关。出于某种原因,从方法“返回”隧道/连接并传递它似乎不起作用。我尝试只在主要方法中的隧道和连接中做所有事情,并且为我修复了它。

    【讨论】:

      猜你喜欢
      • 2017-12-21
      • 2019-04-23
      • 2020-07-11
      • 2012-11-15
      • 2015-09-22
      • 1970-01-01
      • 2020-07-28
      • 2015-11-22
      • 1970-01-01
      相关资源
      最近更新 更多