报错信息如下:

1
2
3
4
ERROR 1118 (42000): Row size too large. 
The maximum row size for the used table type, not counting BLOBs, is 65535.
This includes storage overhead, check the manual.
You have to change some columns to TEXT or BLOBs

报错的信息很简单,就是创建表的时候,所有字段的字节长度加起来超过了65535

解决的办法就是:
将长的字段格式改成longtext 或者是 longblob

这两个类型的区别是:如果存放二进制文件就用longblob,如果存放长文本,就用longtext

到这里基本能解决了

!!!

如果还是爆超长,则需要查看数据库的字符集类型
需要注意一下字符集:

utf8与utf8mb4区别

utf8 使用1~4个字节,一种变长的编码格式,字符编码。utf8mb4 即most bytes 4,使用4个字节来表示完整的UTF-8

结论:如果数据库的字符集是utf8mb4,那就改成utf8,嗯,排序规则也改 ,65535其实是字节长度,如果是utf8mb4,会算成4个字节,很容易就会超长。