MySQL修改默认Blob数据类型大小(解决上传1M以上文件失败的问题)
如果需要在MySQL中存储二进制数据,那么肯定会用到 BLOB 类型的字段。MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小的不同。
MySQL的四种 BLOB 类型: (单位:字节)
TinyBlob : 最大 255
Blob : 最大 65K
MediumBlob : 最大 16M
LongBlob : 最大 4G
那么问题来了:
【问题描述】
现实使用场景中,当你需要上传一段大小超过1M的音频文件时,结果报错了!
【原因分析】
MySQL会根据配置限制server接受的数据包大小。插入或更新大的数据包,会受到 max_allowed_packet 参数限制,导致失败。
【解决方案】
1、首先看看现在的限制大小是多少:
mysql> show variables like 'max_allowed_packet';
出现了默认值为1048576,也就是1M!
2、修改my.ini文件
找到MySql Server的安装目录,打开my.ini文件,在[mysqld]下面,增加一行:max_allowed_packet=2M
3、重启MySQL服务
4、看看修改后的限制大小是多少:
mysql> show variables like 'max_allowed_packet';
出现了默认值为2097152,也就是2M!搞定~