您的位置:首页 > 数据库 > MySQL

MYSQL报错“Packets larger than max_allowed_packet are not allowed”

2017-03-09 11:30 756 查看
BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。

BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数据库中存放体积较大的多媒体对象就是应用程序处理BLOB的典型例子。 

mysql BLOB类型 

MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。 

  MySQL的四种BLOB类型 

  类型 大小(单位:字节) 

  TinyBlob 最大 255 

  Blob 最大 65K 

  MediumBlob 最大 16M 

  LongBlob 最大 4G 

linux修改etc/my.cnf 

[mysqld] 

max_allowed_packet = 16M //不同于[mysqldump]下的max_allowed_packet 

以上为转载内容,还有说设置my-large.ini、my-small.ini、my-medium.ini、my-huge.ini4个文件的
一开始不明白,在4个文件里搜索max_allowed_packet,在mysqld和mysqldump分类下分别找到了max_allowed_packet,默认为1M、16M
仔细琢磨才知道[mysqld] 应该是代表了分类,分别对应于某个下面的设置。把4个文件下的mysqld分类中的max_allowed_packet全设置16M,重启
服务后没有生效。
但是后来研究半天才知道自己SB了,这些ini只是MySQL提供的可参考的配置文件,具体的配置是my.ini。
最后将max_allowed_packet = 16M  拷贝到my.ini中的mysqld分类下,重启服务,可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql
相关文章推荐