MySQL修改預設Blob資料型別大小(解決上傳1M以上檔案失敗的問題)
阿新 • • 發佈:2018-11-04
如果需要在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!搞定~