Por que recebo a mensagem de erro “Too many connections” quando me conecto à minha instância do Amazon Aurora MySQL?
Quero me conectar à minha instância de banco de dados na edição do Amazon Aurora compatível com MySQL, mas estou recebendo a mensagem de erro “Too many connections”. Quero saber o valor máximo de conexão para minha instância de banco de dados e como posso alterá-lo.
Breve descrição
Quando o número de conexões do cliente excede o valor do parâmetro max_connections na instância de banco de dados, você recebe a mensagem de erro "Too many connections".
Para resolver esse problema, primeiro verifique todas as consultas e threads em execução na sua instância de banco de dados. Em seguida, ative o registro de log em sua instância de banco de dados. Examine as conexões existentes e encerre as conexões desnecessárias para reduzir a pressão de conexão. Além disso, ajuste seus parâmetros de conexão do MySQL. Se o problema continuar, aumente o número máximo de conexões à sua instância de banco de dados.
Resolução
Verifique todas as consultas e threads em execução na sua instância de banco de dados
Verifique todas as consultas em execução na instância de banco de dados. Em seguida, verifique o valor de Threads_Connected para saber o número de conexões que estão abertas. Para obter mais informações, consulte Threads_connected no site do MySQL.
No MySQL 5.7, execute o seguinte comando:
mysql> SELECT variable_value AS Threads_Connected FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE variable_name='threads_connected';
No MySQL 8.0, execute o seguinte comando:
mysql> SELECT variable_value AS Threads_Connected from performance_schema.global_status where VARIABLE_NAME = 'threads_connected';
Observação: como o Aurora pode se conectar ao banco de dados a partir do usuário administrativo rdsadmin, o valor de threads_connected pode ser maior do que max_connections.
É uma prática recomendada usar threads_connected ou information_schema.processlist em vez de DatabaseConnections. Os parâmetros threads_connected e information_schema.processlist mostram as conexões do MySQL disponíveis que outros clientes usam.
O DatabaseConnections mostra o total de conexões TCP remotas, não as conexões inativas ou as sessões que o mecanismo de banco de dados cria para seus próprios fins. Como resultado, o valor de DatabaseConnections pode ser menor do que o número de operações executadas pelos threads do MySQL.
Ative o registro de log em sua instância de banco de dados
Para identificar a causa raiz do aumento do número de conexões, ative o registro de log em sua instância de banco de dados compatível com o MySQL do Aurora. É possível ativar o general_log, slow_query_log ou os Parâmetros de log de Auditoria avançada.
Encerre conexões desnecessárias em sua instância de banco de dados
Use os comandos rds_kill e rds_kill_query para encerrar sessões de usuário e consultas desnecessárias em execução na sua instância de banco de dados.
Ajuste seus parâmetros de conexão do MySQL
Ajuste os seguintes parâmetros de conexão do MySQL para sua instância de banco de dados com base em seus valores preferidos:
- wait_timeout
- interactive_timeout
- net_read_timeout
- net_write_timeout
- max_execution_time
- max_connect_errors
- max_user_connections
Para obter mais informações sobre cada um dos parâmetros anteriores, consulte Server system variables [Variáveis do sistema do servidor] no site do MySQL.
Aumente o máximo de conexões à sua instância de banco de dados
Se você ainda enfrentar o problema depois de ajustar seus parâmetros de conexão, aumente o número máximo de conexões à sua instância de banco de dados. Para obter o valor atual de max_connections para sua instância de banco de dados, verifique o grupo de parâmetros que está anexado à sua instância de banco de dados. Ou execute a seguinte consulta:
select @@max_connections;
As instâncias de banco de dados compatíveis com MySQL do Aurora e do Amazon Relational Database Service (Amazon RDS) para MySQL têm quantidades diferentes de sobrecarga de memória. O valor de max_connections pode ser diferente para instâncias de banco de dados compatíveis com MySQL do Aurora e do Amazon RDS para MySQL que usam a mesma classe de instância.
Para identificar o número máximo de conexões para sua classe de instância, use a seguinte fórmula:
max_connections = GREATEST({log(17179869184/805306368)*45},{log(17179869184/8187281408)*1000})
Observação: o exemplo anterior é para uma instância db.r8g.large compatível com MySQL do Aurora com 16 GiB de memória. O DBInstanceClassMemory é igual a 17179869184 bytes. O valor atual de max_connections é 1.000.
Exemplo de resultado:
max_connections = GREATEST(195.56,1000) = 1000
Observação: o número máximo de conexões para essa classe de instância db.r8g.large com 16 GiB de memória é igual ao valor padrão.
Aumente o parâmetro max_connections
Observação: não é uma prática recomendada aumentar o valor de max_connections além do valor padrão. Em vez disso, escale sua instância de banco de dados.
Se você não escalar sua instância de banco de dados e, em vez disso, optar por aumentar o valor de max_connections, conclua as seguintes etapas:
- Crie um grupo de parâmetros de instância de banco de dados personalizado.
- Associe o grupo de parâmetros à sua instância de banco de dados.
- Aumente o valor do parâmetro max_connections.
Observação: não ocorre interrupção quando você define um valor maior para max_connections.
Aumente a escala de sua instância verticalmente
Se você exceder o valor máximo do parâmetro max_connections, é uma prática recomendada escalar sua classe de instância de banco de dados. Sua instância de banco de dados pode enfrentar uma interrupção quando for escalada.
Use as práticas recomendadas para ajustar o parâmetro max_connections
Se você alterou as configurações do grupo de buffer e do cache de consulta do seu cluster de banco de dados, ajuste a cota de conexão para considerar o aumento ou a diminuição da memória disponível nas instâncias de banco de dados.
Defina o parâmetro max_connections um pouco mais alto do que o número máximo de conexões que você espera abrir em cada instância de banco de dados.
Se você ativou o Insights de Performance, então o Performance Schema será ativado automaticamente. É uma prática recomendada usar o valor padrão de max_connections quando o Performance Schema estiver ativado. As estruturas de memória do Performance Schema são automaticamente dimensionadas com base na configuração do servidor.
Importante: o Insights de Performance chegará ao fim de sua vida útil em 30 de junho de 2026. É possível fazer o upgrade para o modo Avançado do Database Insights antes de 30 de junho de 2026. Se você não fizer o upgrade, os clusters de banco de dados que usam o Insights de Performance usarão como padrão o modo Padrão do Database Insights. Somente o modo Avançado do Database Insights oferecerá suporte a planos de execução e análises sob demanda. Se seus clusters usarem como padrão o modo Padrão, talvez você não consiga usar esses recursos no console. Para ativar o modo Avançado, consulte Ativação do modo Avançado do Database Insights para Amazon RDS e Ativação do modo Avançado do Database Insights para Amazon Aurora.
Use o Amazon RDS Proxy
Se você continuar recebendo uma mensagem de erro, use o Amazon RDS Proxy para o Aurora para melhorar a capacidade de escalabilidade da sua aplicação.
Informações relacionadas
- Tópicos
- Database
- Tags
- Aurora MySQL
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há um ano
- feita há 7 meses
- feita há um ano
- feita há um ano