我在Django和MySQL中有一个应用程序,在我的模型中有几个字段指定为TextField,当我运行syncdb时,为我的模型创建了表,指定的列是用长文本数据类型创建的,到目前为止还不错。
但是,当我尝试时,在表中输入信息,我会得到以下错误
DatabaseError:(1118,‘行大小太大。使用的表类型的最大行大小(不包括BLOB)为8126。您必须将一些列更改为文本或BLOB ")。
我将列类型更改为Text和Blob,但没有解决问题。
我一直在阅读有关此错误的文章,这是由于8126字节以上的逐行收入信息造成的。因此,我更改了MySQL的配置,使其使用Barracuda文件类型,而不是Antepode文件类型,我一直在阅读Antepode,它允许将信息压缩到另一个文件。
但是这并没有解决这个问题,在MySQL文档(https://dev.mysql.com/doc/refman/5.5/en/innodb-compression-usage.html)中告诉我在创建表时必须指定ROW_FORMAT = COMPRESSED,但是这是由syncdb完成的,
在syncdb创建表时是否有方法指定这些设置,或者我必须手动创建表而不使用syncdb?
任何其他建议都将是欢迎的,在我的申请中,我必须存储多张纸和报告。我已经在我的表中定义了一个按文档节列的列。
发布于 2012-12-04 19:34:31
我使用innodb解决了在MySQL中添加大数据行的错误
DatabaseError:(1118,‘行大小太大。使用的表类型的最大行大小(不包括BLOB)为8126。您必须将一些列更改为文本或BLOB ")。
首先,我们必须将文件格式设置为Barracuda,并在MySQL中为每个表全局变量启用一个文件:
设置全局innodb_file_format =梭鱼; 设置全局innodb_file_format_check = ON;设置全局innodb_format_max = Barracuda;设置全局innodb_file_per_table = ON;
我用phpmyadmin查询。
然后,在运行syncdb之后,我们转到大行问题所在的表,转到tab Operations->Table选项,然后将'ROW_FORMAT‘修改为'COMPRESS’。
我希望这能帮上忙
https://stackoverflow.com/questions/13707210
复制相似问题