mysql查询报错 返回

SqlSugar 沟通中
10 1171

背景描述:

在一个主机上部署的mysql,现有3台客户端电脑连接:

  1. 1.当前报错的表,只有第三台电脑出现这种情况,查询其他的表都是正常的

  2. 2.另外两台电脑查询是没有问题的

  3. 3.三台电脑的软件和代码完全一样

  4. 4.第三台电脑使用第三方工具也是可以正常查询的

  5. 5.以下是查询过程报错的异常信息

查询到产品信息 原因:MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command execution. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered attempting to read the resultset. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Reading from the stream has failed. ---> System.IO.IOException: 无法从传输连接中读取数据: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。。 ---> System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

   在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

   --- 内部异常堆栈跟踪的结尾 ---

   在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

   在 MySql.Data.MySqlClient.TimedStream.Read(Byte[] buffer, Int32 offset, Int32 count)

   在 MySql.Data.MySqlClient.MySqlStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count)

   在 MySql.Data.MySqlClient.MySqlStream.LoadPacket()

   在 MySql.Data.MySqlClient.MySqlStream.LoadPacket()

   在 MySql.Data.MySqlClient.MySqlStream.ReadPacket()

   在 MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)

   在 MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)

   在 MySql.Data.MySqlClient.MySqlDataReader.NextResult()

   在 MySql.Data.MySqlClient.MySqlDataReader.NextResult()

   在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)

   在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)

   在 SqlSugar.AdoProvider.GetDataReader(String sql, SugarParameter[] parameters)

   在 SqlSugar.QueryableProvider`1.GetData[TResult](KeyValuePair`2 sqlObj)

   在 SqlSugar.QueryableProvider`1._ToList[TResult]()

   在 HVAC.Database.RemoteDBHelper.GetProductRecordByProductSN(String sn) MLogClientTcp 71 MorningLib.MLogger.MLogClientTcp Color [Red]

热忱回答10

  • fate sta fate sta VIP0
    2025/3/13

    方案一 :针对 第三台电脑 连接字符串加上 ;Pooling=false试一下


    方案二:针对 第三台电脑 改一下代码

     net framework用户默认mysql.data 

    我们换成 DbType=DbType.MySqlConnector

    并且NUGET安装下面3个DLL ( .net core自带就是mysqlconnector)

    image.png


    0 回复
  • @fate sta:我试一下,谢谢

    0 回复
  • @fate sta:三台电脑都进行更改,3个月期间仍然有一台平均每周会出现一次,一旦出现后只能重新启动电脑才能恢复,重启软件无效,但是一次报错信息和上次不一样

    2.png



    0 回复
  • fate sta fate sta VIP0
    2025/6/16

     这台服务器加上 Pooling=false试一下


    0 回复
  • fate sta fate sta VIP0
    2025/6/16

    字符串

    0 回复
  • @fate sta:服务器的配置文件中吗?

    0 回复
  • fate sta fate sta VIP0
    2025/6/16

    连接字符串中加

    0 回复
  • @血虐丘比特:我是加载sql连接串里面的

    server=127.0.0.1;Database=HVAC;Uid=root;Pwd=;SslMode=None;Pooling=false

    0 回复
  • 在观察一个月看看

    0 回复
  • 经过1个月的持续运行观察,该问题未出现,处理方式:

    1. DbType=DbType.MySqlConnector

    2. 连接串种增加Pooling=false

    0 回复