gpt4 book ai didi

mysql - 什么是 MySQL 的 wait_timeout、net_read_timeout 和 net_write_timeout 变量?

转载 作者:IT王子 更新时间:2023-10-29 00:32:22 26 4
gpt4 key购买 nike

我正在做批量插入并得到错误 Mysql2::Error: Lost connection to MySQL server during query:

我在互联网上搜索了这个错误以及大多数要求增加 net_read_timeout 值的博客/文章。

我在 Internet 上搜索了有关 net_read_timeout 的信息,但没有找到任何以易于理解的语言描述它的文章/博客。在 MySQL 网站上,net_read_timeout 被描述为 “在中止读取之前等待来自连接的更多数据的秒数”。我完全被这个说法弄糊涂了,不明白。

我也想知道 net_write_timeout 和 wait_timeout 变量。

最佳答案

MySQL 对不同阶段使用不同的超时变量。

  • 当连接建立时,它使用 connection_timeout
  • 当它等待下一个查询时,它使用 wait_timeout
  • 当它在特定时间内没有收到查询时,它使用 net_read_timeoutnet_write_timeout
  • 等等……

通常 net_read_timeout 应该不是问题,但是当您遇到一些网络问题时,特别是在与服务器通信时,可能会引发此超时,因为您发送的查询不是单个数据包对于数据库,MySQL 等待整个查询被读取,但是由于网络问题,它没有接收到其余的查询。在完全获取查询结果之前,MySQL 不允许客户端与服务器通信。

您无法正确更改这两个变量,毕竟它们是 session 变量。

也可以从 MySQL Doc 中阅读

net_read_timeout:

The number of seconds to wait for more data from a connection before aborting the read. When the server is reading from the client, net_read_timeout is the timeout value controlling when to abort. When the server is writing to the client, net_write_timeout is the timeout value controlling when to abort. See also slave_net_timeout.

net_write_timeout:

The number of seconds to wait for a block to be written to a connection before aborting the write. See also net_read_timeout.

您可以使用检查 MySQL 本身的默认变量

> mysql 显示变量,如 '%timeout';

关于mysql - 什么是 MySQL 的 wait_timeout、net_read_timeout 和 net_write_timeout 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34369376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com