在使用 MySql (Aurora) 时,我开始注意到奇怪的查询丢失了,工作人员只是永远挂着。经过一些调查,在 AWS 中运行的相同代码似乎没问题,但在 Azure 上它只是永远挂起!
似乎原因是 Azure 只是杀死空闲的连接(如长时间运行的查询)。请注意,我可以在前面甚至没有负载平衡器的 VM 上重现此内容。
这可以通过以下方式重现 date && time mysql -h$SERVER -u$USER -D mydb -p$PASS -e "SELECT SLEEP(260);"
请注意,我用 240、250 对其进行了测试,在 260 时它会死掉。但不只是死,挂,永远!看起来 Azure 甚至懒得告诉套接字死掉所以 MySql 客户端挂起。
我们有从 NodeJs 和 Python 运行的查询,所以我需要一个解决方案,如果可能的话,可以同时使用这两种方式。
在这里看到一个很好的例子:https : //imgur.com/gallery/FCV8ZWb(注意我必须在另一个会话中杀死 mysql 才能真正发布)
相关分类