我需要使用非常大的扩展插入来执行 SQL 转储。我正在使用计算机中的官方命令行工具连接到 LAN 中的服务器。执行总是死亡:
错误 2006 (HY000): MySQL 服务器已消失
...而且我很确定这是由于max_allowed_packet
设置很小:
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| max_allowed_packet | 10485760 |
+--------------------+----------+
有很多关于如何更改服务器设置的文档,但我想知道是否可以仅针对当前连接(即从客户端)更改它。我不需要通用解决方案,如果它适用于命令行工具,我会很高兴。
我检查了文档并发现了这一点:
max_allowed_packet
发送到服务器或从服务器接收的最大数据包长度。(默认值为 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
能从客户端增加吗?