Incorrect key file for table


При добавлении элементов таблиц через PHPMYADMIN (полей или столбцов) может появляться ошибка #1034 — Incorrect key file for table 'table_name'; try to repair it .



Часто может также наблюдаться повышенная нагрузка создаваемая на CPU или диск сервером баз данных.



Причины ошибки #1034 — Incorrect key file for table


Причиной часто может быть нехватка места в разделе mysqltmp в котором сохраняются временные данные MySQL.



Выяснить объем диска, выделенные под временные файлы MySQL можно выполнив в консоли команду df -h

df -h

Filesystem Size Used Avail Use% Mounted on
udev 10M 0 10M 0% /dev
tmpfs 818M 1.2M 817M 1% /run
/dev/vda 148G 124G 18G 88% /
/dev/vdb 175M 175M 0 100% /lib/modules
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.6G 0 1.6G 0% /run/shm
mysqltmp 128M 0 128M 0% /var/tmp-mysql



В примере под mysqltmp выделено 128 Мб, чего может быть недостаточно. Перемонтируем раздел добавив пространства



mount -o remount,size=1G /var/tmp-mysql/

df -h

Filesystem Size Used Avail Use% Mounted on
udev 10M 0 10M 0% /dev
tmpfs 818M 1.2M 817M 1% /run
/dev/vda 148G 124G 18G 88% /
/dev/vdb 175M 175M 0 100% /lib/modules
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.6G 0 1.6G 0% /run/shm
mysqltmp 1.0G 48K 1.0G 1% /var/tmp-mysql


Сейчас доступен 1 Гб.



Если ошибки #1034 — Incorrect key file for table 'table_name'; try to repair it продолжают появляться нужно редактировать значения двух указанных ниже переменных в конфигурационном файле /etc/mysql/my.cnf или в одном из файлов, который подключается в /etc/mysql/my.cnf .

Директивы добавляются в секцию [mysqld]


tmp_table_size
max_heap_table_size



Значения увеличиваются до тех пор пока ошибки появляться не перестанут.



После того как конфигурационный файл отредактирован сервер баз данных нужно перезапустить

systemctl restart mysql



Читайте также про оптимизацию настроек MySQL

Сказать спасибо