Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于MYSQL 5.7.31-传输连接应更改哪个超时变量:连接超时_Mysql - Fatal编程技术网

对于MYSQL 5.7.31-传输连接应更改哪个超时变量:连接超时

对于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

我在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 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()
为了解决这个问题,我已经尝试过了

  • 我将此添加到我的连接字符串中
  • 连接超时=60

  • 我将它添加到mysqld.cnf中,重新启动并检查它显示变量。日志文件显示它在42秒后超时
  • 连接超时=60000 交互超时=60000 等待\u超时=60000

    我认为问题在于“无法从传输连接读取数据:连接超时。”

    但不确定需要更改哪个变量来解决此问题

    Thank

    仅当客户端和服务器在初始客户端连接期间执行握手时使用。如果客户端出现错误,如与MySQL服务器的连接丢失,增加此值将有所帮助。。默认值为10秒

    我从来没有理由调优这个变量,因为如果客户端在10秒内无法连接,它可能会被防火墙或路由阻止,或者MySQL服务器根本没有运行,或者正在另一个端口上侦听。在这些情况下,增加超时将没有帮助

    帮助客户机在查询之间长时间处于空闲状态。如果查询执行很长时间,则客户端不会被视为空闲。空闲时间从查询完成时开始。默认值为8小时(28800秒)。如果您的应用程序在SQL语句执行期间超时,则此变量不相关

    与等待超时类似,但适用于“交互式”客户端。此类别中唯一的客户端是。您可以忽略此超时变量,除非您正在使用mysql CLI

    您可能需要调整或调整。但我不认为这两个都是必要的


    提示:在Linux上使用XFS作为MySQL datadir的文件系统。无论表或模式有多大,删除它们的速度都要快得多。XFS也为其他工作提供了更好的性能,不仅仅是删除表格。

    将数字增加得更高,直到没有超时。我将其设置为60秒,日志显示它在40秒后超时。显然,我所做的更改没有影响系统。dot net也有一个超时,但是你应该检查processlist中是否有一个进程是blocling,因为drop应该是快速的,再增加60秒。我猜我所做的更改对于传输异常超时是不正确的。我更改的变量是否正确?t ysql连接器的超时与服务器的超时相同,如果您不知道是哪一个原因造成的,请将两边的超时增加到35000000,然后查看结果,但每次逐渐增加所有超时,您会发现是哪一个阻止了连接。此外,当您启用“常规锁定”时,您将看到实际删除需要多长时间。