对于MYSQL 5.7.31-传输连接应更改哪个超时变量:连接超时
我在Linux ubuntu上使用mysql 5.7.31和C# 当我以编程方式删除一个大表或删除一个数据库时,我会得到这个超时对于MYSQL 5.7.31-传输连接应更改哪个超时变量:连接超时,mysql,Mysql,我在Linux ubuntu上使用mysql 5.7.31和C# 当我以编程方式删除一个大表或删除一个数据库时,我会得到这个超时 Stack=MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command execution. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error enco
Stack=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: Unable to read data from the transport connection: Connection timed out.
---> System.Net.Sockets.SocketException (110): Connection timed out
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at MySql.Data.MySqlClient.TimedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at MySql.Data.MySqlClient.MySqlStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count)
at MySql.Data.MySqlClient.MySqlStream.LoadPacket()
at MySql.Data.MySqlClient.MySqlStream.LoadPacket()
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
为了解决这个问题,我已经尝试过了
提示:在Linux上使用XFS作为MySQL datadir的文件系统。无论表或模式有多大,删除它们的速度都要快得多。XFS也为其他工作提供了更好的性能,不仅仅是删除表格。将数字增加得更高,直到没有超时。我将其设置为60秒,日志显示它在40秒后超时。显然,我所做的更改没有影响系统。dot net也有一个超时,但是你应该检查processlist中是否有一个进程是blocling,因为drop应该是快速的,再增加60秒。我猜我所做的更改对于传输异常超时是不正确的。我更改的变量是否正确?t ysql连接器的超时与服务器的超时相同,如果您不知道是哪一个原因造成的,请将两边的超时增加到35000000,然后查看结果,但每次逐渐增加所有超时,您会发现是哪一个阻止了连接。此外,当您启用“常规锁定”时,您将看到实际删除需要多长时间。