powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ERROR 1114 (HY000): The table 'table2' is full - почему?
25 сообщений из 29, страница 1 из 2
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39220462
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер 5.7.11 на Windows 2003. InnoDB, innodb_file_per_table. Свободного места (NTFS) - ну просто завались.

Есть БД по имени db. В ней - таблица db.table1 на 19 гБайт.
Нужно создать таблицу-копию table2 в БД test.

Выполняем
Код: sql
1.
CREATE TABLE test.table2 AS SELECT * FROM db.table1;

В ответ получаем ERROR 1114 (HY000): The table 'table2' is full
Если же выполнить
Код: sql
1.
2.
CREATE TABLE test.table2 LIKE db.table1;
INSERT INTO test.table2 SELECT * FROM db.table1;


то всё проходит нормально.

WTF? Чего нехватает для прямого копирования?
manualInnoDB reports this error when the system tablespace runs out of free space. Reconfigure the system tablespace to add a new data file.ничего к пониманию не добавляет - ибо innodb_file_per_table, под новую таблицу создаётся и новый tablespace.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39221016
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,
да просто баг скорее всего.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39221355
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, а основные файлы innodb заморожены или там autoextend ? какое значение у настройки innodb_data_file_path ?
ну мало ли зачем им надо.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39222042
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindосновные файлы innodb заморожены или там autoextend ?
innodb_autoextend_increment=64

netwindкакое значение у настройки innodb_data_file_path ?
innodb_data_home_dir=
innodb_data_file_path=ibdata1:64M:autoextend
innodb_file_per_table=1
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39222182
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, значит я тоже склоняюсь к тому, что это баг.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39222191
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinainnodb_file_per_table=1Это было установлено до того, как была создана таблица db.table1 ?
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39222200
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftЭто было установлено до того, как была создана таблица db.table1 ?Угу... сервер же перестартовывался после корректировки my.ini - как иначе?
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39222205
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinamiksoftЭто было установлено до того, как была создана таблица db.table1 ?Угу... сервер же перестартовывался после корректировки my.ini - как иначе?Дело не в рестарте сервера, а в моменте создания таблицы.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39222419
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже после. Даже БД создавалась позже внесения изменений - собсно указанные параметры устанавливались при инсталляции.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39222938
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну просторы интернета глаголят о том, что недостаточно места в темповой директории (система не может создать буфферный файл???)
необходимо создать отдельную директорию и указать в my.ini
tmpdir =
кстати будет сразу видно все мусорные файлы MySQL-я
ну и
datadir = вынести бы с диска С: как и tmpdir если она еще там (в месте установки по дефолту MySQL)
это только логические размышления
предположу что в первом случае AS SELECT - сервер работает через темповый файл, во втором - очевидно "напрямую"
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39222942
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел интересную картинку о содержимом ibdata1 если установлен параметр innodb_file_per_table=1, сам когда то интересовался, что же там хранится
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223551
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovпросторы интернета глаголят о том, что недостаточно места в темповой директории
Как грязи.

Alex_Ustinovнеобходимо создать отдельную директорию и указать в my.ini
tmpdir =
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
mysql> show variables like '%tmpdir%';
+-------------------+-------------------------------------------+
| Variable_name     | Value                                     |
+-------------------+-------------------------------------------+
| innodb_tmpdir     | C:\ProgramData\MySQL\MySQL Server 5.7\Tmp |
| slave_load_tmpdir | C:\ProgramData\MySQL\MySQL Server 5.7\Tmp |
| tmpdir            | C:\ProgramData\MySQL\MySQL Server 5.7\Tmp |
+-------------------+-------------------------------------------+
3 rows in set, 1 warning (0.00 sec)



Alex_Ustinovdatadir = вынести бы с диска С: как и tmpdir если она еще там (в месте установки по дефолту MySQL)
Для выделенного девелоперского MySQL-сервера это не имеет смысла. Бенчмарки на нём не меряются...
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223581
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

А какие-нибудь другие запросы, гарантированно требующие создание временного файла, работают?
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223602
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftдругие запросы, гарантированно требующие создание временного файла, работают?
Таблица размером 6 Гбайт аналогичным запросом скопировалась без проблем.

Провёл, кстати, процесс и в режиме однопользовательского доступа. tmpdir не используется, процесс идёт чисто в папке БД. Что забавно - итоговая таблица получается процентов на 15 больше по размеру, чем исходная.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223655
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaТаблица размером 6 Гбайт аналогичным запросом скопировалась без проблем.Т.е. проблема только с одной исходной таблицей?
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223743
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это единственная в исходной БД большая таблица. Таблица проверена, no problems.
Если брать часть (попробовал 10кк записей, это 2.2 Гбайт) - нормально копируется. Запустил 50кк записей.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223817
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft , в общем, ситуация вроде определилась. Копирование идёт нормально, если итоговый файл не превысит 4 Гбайт. Если больше - то вышеуказанная ошибка.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223824
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaКопирование идёт нормально, если итоговый файл не превысит 4 Гбайт. Если больше - то вышеуказанная ошибка.Тогда больше всего на баг похоже. Например, где-то воткнули 32-разрядный int вместо 64-разрядного.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223837
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, internal_tmp_disk_storage_engine какое значение имеет?
Если переключить на MYISAM, то проблема воспроизводится?
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223839
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

tmp_table_size, случаем, не ограничен на уровне 4 Гбайт ?
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223848
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftAkinaКопирование идёт нормально, если итоговый файл не превысит 4 Гбайт. Если больше - то вышеуказанная ошибка.Тогда больше всего на баг похоже. Например, где-то воткнули 32-разрядный int вместо 64-разрядного.
Причем, в windows.
Зачем люди усугубляют ? За пытаться испытывать границы программистского предвидения ? Ставьте линукс. Сейчас для mysql это мейнстрим.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223850
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaЧто забавно - итоговая таблица получается процентов на 15 больше по размеру, чем исходная.Могу предположить, что это следствие того, что CTAS по умолчанию не создает никаких индексов, даже для PK.
А когда нет явно указанного PK, то InnoDB создает неявное поле размером 6 байт и делает его PK.
http://dev.mysql.com/doc/refman/5.7/en/create-table-select.html CREATE TABLE ... SELECT does not automatically create any indexes for you.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223852
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindmiksoftТогда больше всего на баг похоже. Например, где-то воткнули 32-разрядный int вместо 64-разрядного.Причем, в windowsНе думаю.
Может быть, в Windows-специфичном коде в составе MySQL, но вряд ли в самой Windows.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223856
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftnetwindпропущено...
Причем, в windowsНе думаю.
Может быть, в Windows-специфичном коде в составе MySQL, но вряд ли в самой Windows.
да, я и имел ввиду, что проявляется в windows и было недотестировано.
или может быть в 64битном билде нормально будет.
...
Рейтинг: 0 / 0
ERROR 1114 (HY000): The table 'table2' is full - почему?
    #39223910
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftinternal_tmp_disk_storage_engine какое значение имеет?
InnoDB

miksofttmp_table_size, случаем, не ограничен на уровне 4 Гбайт ?
64M
Но временная таблица не используется.

miksoftкогда нет явно указанного PK
Исходная таблица не имеет индексов. И поле внутреннего номера в ней, несомненно, имеется.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ERROR 1114 (HY000): The table 'table2' is full - почему?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]