为什么从Python连接到Redshift有时会超时?

vhmi4jdf  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(119)

我正在通过PC上的Python、Lambda上的Python和SQL Workbench连接Redshift。SQL Workbech总是能正常连接。PC和Lambda通常都能正常工作,但有时它们不能连接--看起来连接在等待Redshift接受请求,只是什么都没有发生,直到例如Lambda超时。
运行中没有日志,没有反馈信息,在红移日志中我找不到任何关于它的信息。我可以通过在Workbench中手动连接来修复每一次运行,而脚本正在等待连接--它显然刷新了一些东西,允许Python连接并正常工作。这是什么原因?我该如何修复它?
以下是我的连接:

conn = psycopg2.connect(
    host=host,
    database=db,
    user=user,
    password=pwd,
    port=port
)

我经历了几个关于连接的问题,如:
AWS Lambda times out connecting to RedShift
AWS Serverless lambda times out while connecting to redshift
python socket Windows 10 connection times out
但看起来都和我的问题无关。

7lrncoxx

7lrncoxx1#

找到答案- SQL Workbench已阻止连接。连接Workbench时,所有其它源都会失败。最简单的解决方案是在其它客户机尝试连接之前断开Workbench连接。如果其它客户机已尝试连接,则仅断开连接是不够的-它需要重新连接,因此其它客户机将刷新(我不知道为什么,通过反复试验找到了它)。
如果过去运行过任何错误查询并且未回滚,则断开连接也可能不起作用。在发生错误、回滚和断开连接之后,一切都正常。

相关问题