mysql查询报错 返回

SqlSugar 沟通中
2 168

背景描述:

在一个主机上部署的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]

热忱回答2

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


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

     net framework用户默认mysql.data 

    我们换成 DbType=DbType.MySqlConnector

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

    image.png


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

    0 回复