Back to top

Исправляем SQL-ошибку Out of sort memory в MySql 8.0.22

Путем корректировки параметра sort_buffer_size исправляем ошибку Out of sort memory в MySql 8 на локальном компьютере со средой разработки Laragon и Apache и на рабочем сервере с Ubuntu и Nginx.

Локальная среда — Laragon и Apache

Впервые ошибка появилась в локальной среде Laragon c Apache 2.4.35 и MySql 8.0.22 при работе с таблицей, содержащей 35000+ строк и целый ряд сложных индексов, включая пространсвенные (spatial) индексы. При попытке просмотреть данные таблицы во встроенной в Laragon программе HeidiSQL Portable система выдала ошибку:

Laragon: Ошибка
Ошибка SQL (1038): Out of sort memory, consider increasing server sort buffer size.

Ошибку удалось устранить следующими шагами.

Запускаем контрольную панель Laragon, правой кнопкой мыши вызываем главное меню и переходим в пункт MySql / my.ini. Программа откроет файл my.ini для редактирования. Находим в файле секцию [mysqld] и увеличиваем размер сортировочного буфера:

[mysqld]
sort_buffer_size=10M

Сохраняем файл и перезапускаем сервисы Laragon.

Рабочий сервер — Ubuntu и Nginx

На рабочем сервере с Ubuntu 18.04 x64, Nginx 1.18.0 и MySql 8.0.22 сработал следующий алгоритм решения проблемы.

Проверяем в командной строке текущие значения переменных MySql:

sudo mysqladmin variables

Определяем путь к файлу my.cnf с настройками MySql с помощью команды:

sudo mysqladmin --help

Открываем конфигурационный файл mysqld.cnf в редакторе Vim:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

и редактируем файл:

  • i — вход в режим вставки
  • Esc — выход из режима вставки
  • :w — запись изменений в файл
  • :q — выход из редактора

В разделе [mysqld] файла добавляем и корректируем параметр sort_buffer_size:

[mysqld]
sort_buffer_size=10M

Перезапускаем MySql.

8 ноября 2020 г.