Spørgsmålet er blevet stillet på serverfejl også.
Du kan eventuelt tage et kig på denne artikel som forklarer meget om MySQL rækkestørrelser. Det er vigtigt at bemærke, at selvom du bruger TEXT- eller BLOB-felter, kan din rækkestørrelse stadig være over 8K (grænse for InnoDB), fordi den gemmer de første 768 bytes for hvert felt inline på siden.
Den nemmeste måde at løse dette på er at bruge Barracuda-filformatet med InnoDB. Dette fjerner dybest set problemet fuldstændigt ved kun at gemme 20 byte-markøren til tekstdataene i stedet for at gemme de første 768 bytes.
Metoden der fungerede for OP der var:
-
Tilføj følgende til
my.cnf
fil under[mysqld]
afsnit.innodb_file_per_table=1 innodb_file_format = Barracuda
-
ALTER
tabellen for at brugeROW_FORMAT=COMPRESSED
.ALTER TABLE nombre_tabla ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
Der er en mulighed for, at ovenstående stadig ikke løser dine problemer. Det er en kendt (og verificeret) fejl
med InnoDB motor, og en midlertidig løsning er indtil videre at falde tilbage til MyISAM motor som midlertidig opbevaring. Så i din my.cnf
fil:
internal_tmp_disk_storage_engine=MyISAM