网上查看资料,mysql中max_allowed_packet 最大值是1G(1073741824),设置超过1G,最终生效也只有1G,longblob类型如何插入4G的值呢?
目前max_allowed_packet 为1G的情况下,插入不到1G的值都会有报错:
mysql> show VARIABLES like '%max_allowed_packet%';
+---------------------------+------------+
| Variable_name | Value |
+---------------------------+------------+
| max_allowed_packet | 1073741824 |
| mysqlx_max_allowed_packet | 1073741824 |
| slave_max_allowed_packet | 1073741824 |
+---------------------------+------------+
3 rows in set (0.01 sec)
表结构:
create table test_longblob (id int primary key,c1 longblob);
插入:
mysql> insert into test_longblob values(1,rpad('a',422967296,'a'));
ERROR 1301 (HY000): Result of rpad() was larger than max_allowed_packet (1073741824) - truncated
不知道你为什么要把4G的内容放到表里,最好看看设计是否又问题,把那么大的内容放到表里,插入和读取都是个问题,而且数据库的空间会消耗很快,不建议这样做。
主要是想看一下mysql主从复制,longblob字段的最大值4G能否复制成功....