- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用非常大的扩展插入执行 SQL 转储。我正在使用 official command-line tool在我的电脑上连接到局域网中的服务器。执行总是死掉:
ERROR 2006 (HY000): MySQL server has gone away
...我很确定这是由于一个很小的 max_allowed_packet
设置:
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_packet
的所有命令仍然报告 10MB,服务器仍然消失。
你能从客户端增加max_allowed_packet
吗?
最佳答案
我读过很多解释如何实现这一点的文章,但我得出的结论是他们根本没有正确测试它。我的结论是:
服务器的 max_allowed_packet
是一个硬编码的上限。您可以像任何其他服务器端设置(配置文件或服务器命令行参数)一样为整个服务器更改它,但无法从客户端增加它。
一些客户端(例如官方命令行工具)允许在连接时设置max_allowed_packet
。这是从客户端实际更改值的唯一方法(更改 session 或全局变量对交换的包的大小没有影响)但它只有在您想降低时才有用。发送大于服务器设置的包仍会触发与包相关的错误,因为服务器不会接受它们。
总结:
max_allowed_packet
视为只读。很遗憾,我无法提供指向官方文档的链接,但这个主题的文档很少。
关于mysql - 你能从客户端增加 max_allowed_packet 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417371/
我是一名优秀的程序员,十分优秀!