Pertanyaan telah diajukan di serverfault juga.
Anda mungkin ingin melihat artikel ini yang menjelaskan banyak tentang ukuran baris MySQL. Penting untuk diperhatikan bahwa meskipun Anda menggunakan bidang TEXT atau BLOB, ukuran baris Anda masih bisa lebih dari 8K (batas untuk InnoDB) karena menyimpan 768 byte pertama untuk setiap bidang sebaris di halaman.
Cara termudah untuk memperbaikinya adalah dengan menggunakan format file Barracuda dengan InnoDB. Ini pada dasarnya menghilangkan masalah sama sekali dengan hanya menyimpan pointer 20 byte ke data teks alih-alih menyimpan 768 byte pertama.
Metode yang berhasil untuk OP di sana adalah:
-
Tambahkan yang berikut ini ke
my.cnf
file di bawah[mysqld]
bagian.innodb_file_per_table=1 innodb_file_format = Barracuda
-
ALTER
tabel untuk menggunakanROW_FORMAT=COMPRESSED
.ALTER TABLE nombre_tabla ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
Ada kemungkinan hal di atas masih belum menyelesaikan masalah Anda. Ini adalah bug yang diketahui (dan diverifikasi)
dengan InnoDB engine, dan perbaikan sementara untuk saat ini adalah mundur ke MyISAM mesin sebagai penyimpanan sementara. Jadi, di my.cnf
. Anda berkas:
internal_tmp_disk_storage_engine=MyISAM