我有给定的设置-我的本地计算机(A),堡垒主机(B)和MySQL服务器(C)。数据库服务器位于Amazon RDS上,堡垒主机位于EC2上。我已经编写了一个脚本,该脚本是从本地计算机运行的,该脚本在处理某些数据后必须去往DB中写入该数据的条目,并将某些对象写入S3。运行脚本后,我得到了预期的结果-正确的条目位于数据库中,而对象位于S3中,但是我总是在终端中收到此错误-
sqlalchemy.exc.OperationalError: (OperationalError) (2013, 'Lost connection to MySQL server during query')
本地计算机上的数据大小似乎没有什么不同,因为它总是正确地添加数据,但是会引发此异常。以下是用于连接和ssh-tunneling的脚本部分-
with SSHTunnelForwarder(
('B ip address', 22),
ssh_username = "B username",
ssh_password = "B password"
remote_bind_address=('C RDS hostname', 3306),
local_bind_address=('127.0.0.1', 1112) #using 1112 as an unused port
) as server:
engine = create_engine("mysql+pymysql://<C username>:<C password>@localhost:1112/<C DB name>")
connection = engine.connect()
我尝试将create_engine调用上的pool_recycle设置为不同的值,但无济于事。欢迎任何输入