#mysql #linux
Вопрос:
Я выполняю этот запрос в таблице объемом 16 ГБ:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4
После некоторого ожидания он заканчивается этой ошибкой:
#1114 - The table '#sql-491_cebd' is full.
Как раз перед этим Linux Mint 19 сообщает, что диск почти заполнен, и я вижу, как он заполняется в диспетчере дисков (хотя после сбоя все еще остается 8 ГБ, поэтому я не уверен, что там происходит). На этом диске невозможно освободить больше места, поэтому мне нужно перенести операцию на другой диск.
Как я могу заставить mysql сделать это?
Комментарии:
1. dev.mysql.com/doc/refman/8.0/en/internal-temporary-tables.html «Временные файлы создаются в каталоге, определенном
tmpdir
переменной». И dev.mysql.com/doc/refman/8.0/en/… »innodb_tmpdir
Используется для определения альтернативного каталога для временных файлов сортировки, созданных во время онлайн-операций ИЗМЕНЕНИЯ ТАБЛИЦЫ, которые перестраивают таблицу». Первое является только глобальным, второе может быть глобальным или сессионным.2. Спасибо, это похоже на то, что нужно, но это приводит к тому, что мой mysql не перезапускается. Мне придется задать новый вопрос по этому поводу.