![]() |
1
31
我也有同样的问题,这绝对让人发疯。以下是文档在MySQL网站上所说的(强调我的) 驱动程序是否应尝试重新建立过时和/或死掉的连接? 如果启用,驱动程序将对在旧连接或死连接上发出的属于当前事务的查询引发异常,但将在新事务中对该连接发出的下一个查询之前尝试重新连接。 . 不建议使用此功能,因为当应用程序不能正确处理SQLExceptions时,它会产生与会话状态和数据一致性相关的副作用,并且仅当您无法将应用程序配置为正确处理由于死掉和过时的连接而导致的SQLExceptions时才使用此功能。或者,研究将mysql服务器变量“wait_timeout”设置为某个高值,而不是默认的8小时。 根据我的经验,似乎“重新连接下一个查询”功能也不起作用,但我使用的是MySQL4.0,这可能就是原因所在。 最后我编写了一个小框架,它捕获异常,检查特定的错误,并尝试重新连接,如果可能的话重试查询。 埃塔 : This link 提供更多信息,并指示将来无论如何可能会删除自动连接。 |
![]() |
2
2
AutoConnect仍然会抛出异常,因此如果您愿意,可以选择对这种情况做些什么。如果你抓住了它,你应该会发现连接在那里。(如果您在一个事务中,则会有一些更复杂的情况——您当前的事务几乎是死的。) |