A.2.9 Коммуникационные ошибки / Оборванные соединения | Оглавление | A.2.11 Ошибка Can't create/write to file |
The table is full
Существует несколько случаев, когда выдается эта ошибка:
tmp_table_size
байтов. Для
решения этой проблемы можно использовать опцию -O tmp_table_size=#
,
чтобы mysqld
увеличил размер временных таблиц, или опцию SQL
SQL_BIG_TABLES, перед тем как выдать сомнительный запрос (see section 5.5.6 Синтаксис команды SET
).
Можно также запускать mysqld
с опцией --big-tables
-
эффект здесь будет таким же, как и от использования SQL_BIG_TABLES
для
всех запросов. В версии MySQL 3.23 размещенные в памяти временные
таблицы после того, как размер таблицы превысит tmp_table_size
,
автоматически преобразуются в расположенные на диске таблицы типа
MyISAM
.
InnoDB
и исчерпалось место в табличном
пространстве InnoDB
. В таком случае следует увеличить табличное
пространство InnoDB
.
ISAM
или MyISAM
в операционной системе, которая
поддерживает файлы размером до 2 Гб, и файл данных или индексный файл
достигли этого предела.
MyISAM
, и размер требуемых данных или индекса
превышает тот, который предусматривался MySQL при выделении указателей
(если MAX_ROWS
не указано в CREATE TABLE
, MySQL выделяет указатели,
предусматривающие размещение только 4 Гб данных). Проверить
максимальные размеры данных/индекса можно посредством
SHOW TABLE STATUS FROM database LIKE 'table_name';или с помощью
myisamchk -dv база_данных/таблица
. Если проблема связана с
указателями, то это можно исправить с помощью команды наподобие следующей:
ALTER TABLE table_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;Указывать
AVG_ROW_LENGTH
нужно только для таблиц с полями типа BLOB/TEXT
,
поскольку в этом случае MySQL не может оптимизировать требуемое
пространство, исходя только из количества строк.
A.2.9 Коммуникационные ошибки / Оборванные соединения | Оглавление | A.2.11 Ошибка Can't create/write to file |