Resolva o erro 1038 do MySQL: memória buffer insuficiente

Resolva o erro 1038 do MySQL: memória buffer insuficiente

O erro 1038 descrição de incrementar o tamanho do buffer ocorre com frequência no MySQL em configuração padrão e memória insuficiente para as consultas


Ao chegar em uma quantidade de produtos cadastrados na Info Usado, surgiu o inesperado erro abaixo:

Warning: mysqli::query(): (HY001/1038): Out of sort memory, consider increasing server sort buffer size in /var/www/html/system/library/db/mysqli.php on line 24

De acordo com a descrição da própria falha, é referente ao banco de dados MySQL. A versão utilizada no servidor da Info Usado é 8.0.27 e o Ubuntu era a versão 20.04.1. 

A memória buffer do MySQL é um local onde são armazenados índices e dados de tabelas e é onde serão os acessos mais rápidos para o banco de dados ganhar velocidade na consulta ou alteração, por isso quanto maior o espaço, melhor para a performance do site ou aplicação.

O incremento da memória, segundo a documentação da MySQL, é recomendada ser até 80% é atribuída à memória buffer em servidores dedicados. Por padrão de instalação, a configuração é de 1342177Kb.

Retornando ao erro 1038, em suma, significa que o banco de dados não tem memória suficiente para fazer consultas. Logo, é hora de resolver.

No terminal do Ubuntu, acesse o MySQL:

mysql

Aqui, como ainda as consultas ainda são pequenas, foi deixado 512Mb. Dentro do MySQL:

SET GLOBAL sort_buffer_size = 512000000;

Saia do banco:

exit;

Lembre-se que aqui o exemplo é para o Ubuntu 20.04.1. Entre no seguinte arquivo:

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

Atenção, aqui! Se não encontrar a linha sort_buffer_size, será preciso adicionar ela com o valor de 512000000. Encontre key_buffer_size = 16M e adicione aquela abaixo desta. Ctrl + S para salvar e Ctrl + X para sair.

Ficará assim:

key_buffer_size = 16M

sort_buffer_size = 512000000

Resolva o erro 1038 do MySQL: memória buffer insuficiente
Resolva o erro 1038 do MySQL: memória buffer insuficiente

Reinicie com o comando:

sudo service mysql restart

Além de resolver o erro 1038, este procedimento é uma pequena otimização de performance do MySQL. 

Se tem algo a mais para acrescentar ou alguma curiosidade, por favor, deixe nos comentários para ajudar outras pessoas.

Este é um blog da Info Usado que divulga informações e conhecimento sobre informática. A Info Usado comercializa peças usadas para informática


Márcio Baldo

Comentários