【问题标题】:MySQL error "Got a packet bigger than 'max_allowed_packet' bytes"MySQL 错误 \"Got a packet bigger than \'max_allowed_pa​​cket\' bytes\"
【发布时间】:2023-02-13 18:25:48
【问题描述】:

我正在尝试从一个大小为 4.7G 的 sql 转储中导入一个表,其中包括使用以下命令的 longblob:

mysql --max-allowed-packet=2048M -uroot -p otobo < /backup/article_data_mime_plain.sql

即使选项“--max-allowed-packet”在这种特殊情况下设置为“512M”时通常也足够了,即使是允许的限制 2G 似乎也没有用,给出以下输出:

ERROR 1153 (08S01) at line 2270: Got a packet bigger than 'max_allowed_pa​​cket' bytes

在此先感谢,欢迎任何建议。

【问题讨论】:

  • 您需要拆分数据或增加服务器限制。您不能增加客户端的限制。

标签: mysql


【解决方案1】:

以下是执行此操作的步骤:

  1. 打开MySQL配置文件(my.cnf或my.ini)
  2. 找到 [mysqld] 部分并添加以下行:max_allowed_pa​​cket=64M
  3. 保存文件并重新启动 MySQL 服务器以使更改生效。

    注意:您应该将“max_allowed_pa​​cket”值设置为适合您的用例的值,同时考虑可用的系统内存和其他要求。

【讨论】:

    【解决方案2】:

    增加客户端 net_buffer_length 配置变量的值也是一个好主意,因为它会影响转储过程中传输的数据包的大小。默认值为 16384 字节。例如:

    [mysql]
    net_buffer_length=128K
    

    进行更改后,您可以重试数据库转储,它应该会成功完成。

    【讨论】:

      猜你喜欢
      • 2015-08-31
      • 1970-01-01
      • 2022-08-17
      • 2017-09-05
      • 1970-01-01
      • 2010-09-10
      • 2017-01-15
      • 1970-01-01
      相关资源
      最近更新 更多