与我的MYSQL connect_timeout单元混淆

时间:2019-01-11 18:38:42

标签: python mysql flask

我有一些代码可以支持alexa前端。
它运行在Rpi上,是通过python查询mysql数据库,flask-ask等。

它一天到晚都可以正常工作,第二天早上我收到一个错误2006(mysql已经消失)错误,必须重新启动python脚本。

我检查了配置并设置了connect_timeout = 10。

我以为这是几个小时,但似乎定义为秒...。所以我不明白我的代码是如何整天工作的,并且只有在晚上睡觉后才会失败。我当然不是每10秒运行一次查询。

我找到了ping命令并想尝试重新建立连接,但是如果每次测试之间都要上床睡觉,测试会有些痛苦,所以我真的想将超时设置为10秒这样我就可以随意重现错误并测试ping。

任何提示这是如何工作的,几秒钟后我如何使其超时?

非常感谢

G

1 个答案:

答案 0 :(得分:0)

mysql中有许多不同的超时参数,例如:

  

mysqld服务器等待连接数据包之前以错误握手响应的秒数。

  

SELECT语句的执行超时(以毫秒为单位)。如果值为0,则不启用超时。

  

服务器在关闭交互式连接之前等待活动的秒数。

  

服务器在关闭非交互式连接之前等待活动的秒数。

您需要调查哪个超时在用例中引起问题,并进行相应的修改。根据您对问题的描述,您在其中解释了脚本在睡眠状态时通宵丢失的连接可能是wait_timeout(或interactive_timeout,具体取决于连接的启动方式)。