gpt4 book ai didi

mysql - 你能从客户端增加 max_allowed_pa​​cket 吗?

转载 作者:行者123 更新时间:2023-11-29 03:07:16 25 4
gpt4 key购买 nike

我需要使用非常大的扩展插入执行 SQL 转储。我正在使用 official command-line tool在我的电脑上连接到局域网中的服务器。执行总是死掉:

ERROR 2006 (HY000): MySQL server has gone away

...我很确定这是由于一个很小的 ​​max_allowed_pa​​cket 设置:

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| max_allowed_packet | 10485760 |
+--------------------+----------+

有很多关于如何在服务器中更改设置的文档,但我想知道是否可以仅针对当前连接更改它,即来自客户端> 侧面。我不需要通用解决方案,如果它适用于命令行工具,我会很高兴。

我检查了文档和 found this :

max_allowed_packet

The maximum packet length to send to or receive from the server. (Default value is 16MB.)

...然后尝试了这个:

mysql ^
--max_allowed_packet=50M ^
--compress ^
--default-character-set=utf8 ^
--skip-reconnect ^
-h mysql.example.com -u foo -b bar

结果:读取 max_allowed_pa​​cket 的所有命令仍然报告 10MB,服务器仍然消失。

你能从客户端增加max_allowed_pa​​cket吗?

最佳答案

我读过很多解释如何实现这一点的文章,但我得出的结论是他们根本没有正确测试它。我的结论是:

  • 服务器的 max_allowed_pa​​cket 是一个硬编码的上限。您可以像任何其他服务器端设置(配置文件或服务器命令行参数)一样为整个服务器更改它,但无法从客户端增加它。

  • 一些客户端(例如官方命令行工具)允许在连接时设置max_allowed_pa​​cket。这是从客户端实际更改值的唯一方法(更改 session 或全局变量对交换的包的大小没有影响)但它只有在您想降低时才有用。发送大于服务器设置的包仍会触发与包相关的错误,因为服务器不会接受它们。

总结:

  1. 您必须将 max_allowed_pa​​cket 视为只读。
  2. 如果它太小,您需要为整个服务器更改它或忍受它。

很遗憾,我无法提供指向官方文档的链接,但这个主题的文档很少。

关于mysql - 你能从客户端增加 max_allowed_pa​​cket 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417371/

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