【发布时间】: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_packet,但出现错误“1227,'访问被拒绝;您需要(至少一个)超级权限才能执行此操作'”
【问题讨论】: