Как я могу установить, какой диск mysql использует для временных таблиц?

#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 не перезапускается. Мне придется задать новый вопрос по этому поводу.