【问题标题】:C# MySQL command timeoutC# MySQL 命令超时
【发布时间】:2018-07-10 17:53:39
【问题描述】:

我已将 command_timeout 指定为 4 秒。


但是当我运行应用程序时,该命令需要大约 8-12 秒才能超时。


我还在 MySQL 连接字符串中指定了连接超时,但没有运气

默认命令超时=4

它适用于 MsSqll 和 Oracle,但不适用于 MySQL。

有什么方法可以指定超时时间吗?

我在 https://forums.mysql.com/read.php?38,634568,634568 那里找到了问题,但没有答案。

编辑

代码示例

...         
DataTable outputNodes = new DataTable();
Stopwatch sw = new Stopwatch();
cmd.CommandTimeout = 4;
sw.Start();
var a = cmd.ExecuteReader();
sw.Stop();
ex_time = sw.Elapsed;
sw.Reset();
outputNodes.Load(a);
CloseConnection();
...

【问题讨论】:

  • MySQL 连接器版本?
  • 你也可以使用MySqlCommand cmd = new MySqlCommand(); cmd.CommandTimeout = 4;
  • @Hackerman MySQL 连接器版本 6.9.9.0
  • @Hackerman 我还指定了 cmd.CommandTimeout = 4。结果还是一样。

标签: c# mysql timeout


【解决方案1】:

这可能是 Connector/NET 中的一个错误。我遇到了CommandTimeout 的许多错误,例如bug 88124bug 87307。我想我什至记得在它实际超时之前提交了一份关于MySqlCommandCommandTimeout 的错误报告(这听起来像你的情况),但我现在找不到它(如果我真的提交了它)。

如果您有一致的重现,我建议在bugs.mysql.com 提交错误。

如果您可以灵活地更改驱动程序,请尝试MySqlConnector,它具有更强大的CommandTimeout 实现。

【讨论】:

  • 我也发现了一些错误报告,但从 2015 年开始。我认为现在可能会解决。感谢您提供信息。
猜你喜欢
  • 2013-09-30
  • 2011-01-30
  • 2021-09-06
  • 1970-01-01
  • 2013-04-03
  • 2019-12-06
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多