继续遇到“max_allowed_packet”错误消息,对于数据,我刚刚猜测这个数字应该是多少......
我想停止猜测,并知道如何查看这个数字应该是多少——并且看起来该信息可能在数据库表信息中的“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_packet”设置为 100mb。
答案1
我不能 100% 确定如何分析 max_allowed_packet 情况。但我知道我有一个 ~3gb 的数据库导出文件,需要在 max_allowed_packet 大小为 100mb 的情况下导入。我通常的做法是将其任意设置为高值,导入数据,然后将其重新设置为 1M 并重新启动 mysqld。