Otázka byla položena na chybě serveru taky.
Možná se budete chtít podívat na tento článek což vysvětluje hodně o velikostech řádků MySQL. Je důležité si uvědomit, že i když použijete pole TEXT nebo BLOB, může být velikost vašeho řádku stále vyšší než 8 kB (limit pro InnoDB), protože na stránce je uloženo prvních 768 bajtů pro každé pole.
Nejjednodušším způsobem, jak to vyřešit, je použít formát souboru Barracuda s InnoDB. Tím se v podstatě zbavíte problému tím, že se místo uložení prvních 768 bajtů uloží pouze 20 bajtový ukazatel na textová data.
Metoda, která tam fungovala pro OP, byla:
-
Přidejte následující do
my.cnf
soubor pod[mysqld]
sekce.innodb_file_per_table=1 innodb_file_format = Barracuda
-
ALTER
tabulku použítROW_FORMAT=COMPRESSED
.ALTER TABLE nombre_tabla ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
Je možné, že výše uvedené stále vaše problémy nevyřeší. Je to známá (a ověřená) chyba
pomocí InnoDB enginu a prozatímní opravou je přechod na MyISAM motor jako dočasné úložiště. Takže ve vašem my.cnf
soubor:
internal_tmp_disk_storage_engine=MyISAM