MySql.Data.MySqlClient.MySqlException:超时已过期

问题描述 投票:0回答:4

最近,我的网络应用程序中的特定页面抛出了

异常详细信息:MySql.Data.MySqlClient.MySqlException:超时 已到期。超时时间在完成之前已过 操作或服务器没有响应。

虽然我使用Ibtais作为持久层,但还是出现这个错误。我已经重新启动了 MySql 服务实例,但仍然遇到相同的错误。这种情况不是以前发生过,而是最近经常发生。

服务器上部署的所有Web应用程序都使用Ibatis,DB服务器保留在安装IIS的同一台机器上。大约有 8000 条记录,其中大约 300 到 500 条会在页面加载时被过滤

对于问题的原因有什么见解吗?

c# mysql query-optimization ibatis timeoutexception
4个回答
30
投票

我遇到了和你一样的问题,我发现了这个MySQLConnection--Specifying default command timeout

只需将“default command timeout=xxx”添加到你的connectString中,该键的值以秒为单位。
我尝试过,它对我有用。


5
投票

您可以将命令超时设置为 0,但这不是一个好主意。有些请求可能会无限期地持续下去。

首先存在一个导致查询超时的潜在问题。您是否正在插入、更新或以任何方式处理会锁定表的大型二进制值?这是我在如此少量的数据上看到的此类错误的最常见原因。


1
投票

让你的连接字符串看起来像这样:

DotNet 框架:

<add key="MYSQL_CONNECTION_STRING_RDS" value="Uid=userid;Password=pass;
     Server=localhost;Port=3306;
     Database=dbname;default command timeout=0;SslMode=none" 
/>

DotNet 核心

"MYSQL_CONNECTION_STRING_RDS": {
    "ConnectionString": "Server=localhost;Database=dbname;user=userid;password=pass;default command timeout=0;",
    "ServerVersion": "8.0.22"
  }

0
投票

我也遇到了这个错误!
而是使用 Mysql 作为数据库,使用 Sql-server
如果超时对您不起作用,它应该可以解决您的问题

© www.soinside.com 2019 - 2024. All rights reserved.