mysql - 即使没有时间延迟,Pythonanywhere 也会出现 MySQL 连接错误
问题描述
我正在尝试使用以下代码从本地 python 文件连接到我的 pythonanywhere 数据库。
import MySQLdb, sshtunnel
sshtunnel.SSH_TIMEOUT = 5.0
sshtunnel.TUNNEL_TIMEOUT = 5.0
queryAdd = ("INSERT INTO `****$geo***`.O***"
"(name, address) "
"VALUES (%s, %s)")
with sshtunnel.SSHTunnelForwarder(
('ssh.pythonanywhere.com'),
ssh_username='*******', ssh_password='*******',
remote_bind_address=('*****.mysql.pythonanywhere-services.com', 3306)
) as tunnel:
connection = MySQLdb.connect(
user='******',
passwd='********',
host='127.0.0.1', port=tunnel.local_bind_port,
db='****$geo******',
)
cursor = connection.cursor()
for row in dl:
tup=(row['name'],row['address'])
cursor.execute(queryAdd, tup)
connection.commit()
但是,一旦运行代码,我就会收到以下错误:
MySQLdb._exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
创建连接和运行查询之间没有延迟。我究竟做错了什么?
解决方案
你需要在你的with
块内做所有事情,因为当你离开上下文时隧道就消失了。
推荐阅读
- pine-script - TradingView 中的 Renko 函数
- parse-platform - 如何检测到 Parse Server 的登录失败?
- javascript - clearTimeout() 正在影响 React 中完全独立的东西
- huawei-mobile-services - 华为在开发flutter插件时得到appId为空,配置文件.json文件不应该被读取
- java - 为什么我的 Quartz 触发器在我的 Spring Boot 应用程序重新启动时没有更新更改的 Cron 表达式?
- python - 如何在python中计算n维中的均值偏移或K均值
- javascript - 在 React 中使用 fetch() 处理承诺?
- javascript - Fast-CSV - 重新排列数组对象的列
- for-loop - 移动命令 + 通配符 = 奇怪的结果
- android - 自定义 NavHostFragment 用 viewgoup 替换 framelayout