ОШИБКА 1114 (HY000): таблица заполнена - PullRequest
90 голосов
/ 08 апреля 2009

Я пытаюсь добавить строку в таблицу InnoDB простым запросом:

INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills');

Но когда я пытаюсь выполнить этот запрос, я получаю следующее:

ERROR 1114 (HY000): The table `zip_codes` is full

Выполнение «SELECT COUNT (*) FROM zip_codes» дает мне 188 959 строк, что не слишком много, учитывая, что у меня есть другая таблица с 810 635 строками в той же базе данных.

Я довольно неопытен с движком InnoDB и никогда не сталкивался с этой проблемой с MyISAM. Каковы некоторые из потенциальных проблем здесь?

EDIT: это происходит только при добавлении строки в таблицу zip_codes.

Ответы [ 21 ]

3 голосов
/ 08 января 2015

было: SQLSTATE [HY000]: общая ошибка: 1114 Таблица 'catalog_product_index_price_bundle_sel_tmp' заполнена

решено:

редактировать конфигурацию базы данных:

nano /etc/my.cnf

tmp_table_size = 256M max_heap_table_size = 256M

  • перезапустить дБ
2 голосов
/ 08 апреля 2009

Цитировать документы MySQL.

Механизм хранения InnoDB поддерживает таблицы InnoDB в табличном пространстве, которое может быть создано из нескольких файлов. Это позволяет таблице превышать максимальный размер отдельного файла. Табличное пространство может включать разделы сырых дисков, что позволяет создавать очень большие таблицы Максимальный размер табличного пространства составляет 64 ТБ.

Если вы используете таблицы InnoDB и не хватает места в табличном пространстве InnoDB. В этом случае решение заключается в расширении табличного пространства InnoDB. См. Раздел 13.2.5, [«Добавление, удаление или изменение размера данных и файлов журналов InnoDB».]

2 голосов
/ 11 января 2019

в моем случае это просто потому, что сервер mysql работает вместе с приложением, которое записывает слишком много журналов о том, что диск заполнен.

Вы можете проверить, достаточно ли места на диске.

df -h

если процент использования диска равен 100%, вы можете использовать эту команду, чтобы определить, какой каталог слишком велик

du -h -d 1 /
1 голос
/ 25 июля 2017

У меня возникла эта проблема ... в моем случае мне не хватило места на моем выделенном сервере. Проверьте, что если ничего не помогает, и подумайте об увеличении дискового пространства или удалении ненужных данных или файлов.

1 голос
/ 07 декабря 2016

Я столкнулся с той же проблемой из-за недостатка места на диске. И раздел, в котором находится файл ibdata1, который является системным табличным пространством для инфраструктуры InnoDB, был заполнен.

1 голос
/ 05 января 2016

В моем случае память сервера была заполнена, поэтому БД не могла записать временные данные. Чтобы решить эту проблему, вам просто нужно найти место на диске.

0 голосов
/ 10 июня 2019

ПОЛЬЗОВАТЕЛИ DOCKER: Это также происходит, когда вы достигли примерно 90% от вашего размера изображения Docker (кажется, что для кэширования требуется 10%). Формулировка вводит в заблуждение, поскольку это просто означает количество дискового пространства, которое Docker может использовать практически для всего.

Чтобы исправить, перейдите в настройки рабочего стола Docker> Диск> переместите ползунок немного вправо> Применить.

enter image description here

0 голосов
/ 30 декабря 2018

В моем случае я пытался выполнить команду изменения таблицы, и доступное дисковое пространство было меньше размера таблицы. Однажды я увеличил дисковое пространство, проблема ушла.

0 голосов
/ 28 ноября 2018

Я исправил эту проблему, увеличив объем памяти, доступной для бродячей виртуальной машины, на которой находилась база данных.

0 голосов
/ 29 января 2010

Это также может быть предел InnoDB для количества открытых транзакций:

http://bugs.mysql.com/bug.php?id=26590

при 1024 транзакциях, которые отменили записи (как в редактировании любых данных), InnoDB не будет работать

...