错误2020(HY000):尝试从表中检索数据时,数据包大于'max_allowed_pa​​cket'字节

时间:2019-06-12 13:36:42

标签: mysql innodb max-allowed-packet

我正在进行Web应用程序的本地设置,因此必须提取表中的所有项目,但是当我执行select * from my_table时,会出现此错误ERROR 2020 (HY000): Got packet bigger than 'max_allowed_packet' bytes

我尝试了很多选择,其中包括:

-将max_allowed_packet\etc\mysql\mysql.conf.d\mysqld.cnf中的\etc\mysql\mysql.conf.d\mysqldump.cnf(我不使用转储,但为了安全起见)设置为1G,然后是2G,等等。

-还尝试在终端的mysql中使用set global net_buffer_length=1000000;set global max_allowed_packet=1000000000;

使用mysql --max_allowed_packet=100M -u root -可以提供所有数据时,我获得了一些成功,但是问题是它仅在终端中可用,但是我必须在无法使用的Web应用程序中获取数据。 / p>

有趣的是: 我尝试使用限制,因此当我使用select * from my_table limit 200时,它会提供预期的结果(但仅200行)。总行数约为350,因此错误出在行数大于200的数据中。要检查行结果的大小,我使用了以下查询: select sum(row_size) from ( select char_length(id)+ char_length(code)+ char_length(name)+ char_length(url) +char_length(group)+ char_length(template)+ char_length(html) + char_length(association) + char_length(status) + char_length(created_at)+ char_length(updated_at) + char_length(html_generation_date) as row_size from myTable limit 311,1) as tbl1;这给了我:43095 而上述查询limit 150,1的结果为:94428。因此行大小似乎不是问题。

我尝试了在MySQL Error 1153 - Got a packet bigger than 'max_allowed_packet' byteshttps://serverfault.com/questions/102564/error-2020-got-packet-bigger-than-max-allowed-packet-bytes-when-dumping-table上给出的解决方案。

基本上,我想做这样的事情:在我的PHP Yii应用程序中使用myTable::model()->findAll();,它等效于select * from my_table,然后我就可以使用数据填充列表了。

表架构为: +----------------------+--------------+------+-----+-------------------+-----------------------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | code | varchar(150) | NO | | NULL | | | name | varchar(150) | NO | | NULL | | | url | varchar(255) | NO | | NULL | | | group | int(11) | NO | MUL | NULL | | | template | int(11) | NO | | NULL | | | html | longtext | YES | | NULL | | | association | varchar(100) | NO | | NULL | | | status | tinyint(1) | NO | | NULL | | | created_at | timestamp | NO | | CURRENT_TIMESTAMP | | | updated_at | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | | html_generation_date | timestamp | YES | | NULL | |

并且mysql版本是:14.14发行:5.7.26。数据库引擎是InnoDB。

我们将不胜感激任何帮助。

0 个答案:

没有答案
相关问题