MySQL“max_allowed_pa​​cket”错误——如何分析最大数据包大小?

MySQL“max_allowed_pa​​cket”错误——如何分析最大数据包大小?

继续遇到“max_allowed_pa​​cket”错误消息,对于数据,我刚刚猜测这个数字应该是多少......

我想停止猜测,并知道如何查看这个数字应该是多少——并且看起来该信息可能在数据库表信息中的“Data_length”列中。

这是正确的吗?如果正确,我该如何计算在 MySQL 配置中输入的值以避免在得到错误之前出现错误。

(如果有关系的话,我会在数据库恢复时不断收到这些错误。)

问题、反馈、请求——只需评论,谢谢!!


附加信息:数据库是 INNOdb,而不是 MyISAM。


更新(1):

为了找到一种方法来对“max_packet”进行基准测试,我做了以下操作,运行恢复,得到导致错误的行号错误,将该行转储到文本文件中以测量文件大小。

错误:

ERROR 1153 (09S01) at line 2742: Got a packet bigger than "max_allowed_packet" bytes

SED 代码:

sed 'INSERTLINENUMBERq;d' INSERTDATABASEDUMPFILENAME.sql > INSERTLINENUMBER.txt

问题是……该行只有 8mb,“max_allowed_pa​​cket”设置为 100mb。

答案1

我不能 100% 确定如何分析 max_allowed_pa​​cket 情况。但我知道我有一个 ~3gb 的数据库导出文件,需要在 max_allowed_pa​​cket 大小为 100mb 的情况下导入。我通常的做法是将其任意设置为高值,导入数据,然后将其重新设置为 1M 并重新启动 mysqld。

相关内容