O parâmetro max_user_connections define o número máximo de conexões de usuário. Se você receber uma mensagem de erro indicando que esse limite foi atingido, como "has more than 'max_user_connections' active connections" ou "User 'xxx' has exceeded the 'max_user_connections' resource", siga as etapas deste tópico para solucionar o problema.
Sintomas
A conexão com uma instância do ApsaraDB RDS for MySQL falha pelo console do Data Management (DMS) ou por um cliente de banco de dados. O sistema retorna uma mensagem de erro relacionada a "max_user_connections".
Causa
Novas conexões falham porque a instância do ApsaraDB RDS for MySQL atingiu o limite de conexões.
Identificar origens das conexões
Recursos do console
SQL Explorer and Audit
Ao ativar o recurso SQL Explorer and Audit, o sistema registra automaticamente instruções SQL do kernel do banco de dados, incluindo a conta em execução, o endereço IP e outros detalhes da execução. Esse recurso não afeta o desempenho da instância. Para mais informações, consulte SQL Explorer and Audit.
O SQL Explorer and Audit é um recurso pago. Para mais detalhes sobre faturamento, consulte Faturamento do SQL Explorer and Audit.
Procedimento
Acesse a lista de instâncias RDS, selecione uma região na barra de navegação superior e clique em ID da instância desejada.
No painel de navegação à esquerda, escolha .
Ative o SQL Explorer and Audit.
Session Management
O recurso Session Management permite visualizar todas as sessões atuais, ativas e anormais de uma instância. Ele exibe informações como usuário, host, tempo de execução e status de cada sessão. Para mais informações, consulte Session Management.
Procedimento
Acesse a lista de instâncias RDS, selecione uma região na barra de navegação superior e clique em ID da instância desejada.
No painel de navegação à esquerda, escolha Autonomy Services > Diagnostics.
A aba Session Management exibe o usuário, host, tempo de execução e status das sessões atuais da instância.
Comando SQL
Quando o banco de dados atinge o limite máximo de conexões, não é possível estabelecer novas sessões para executar instruções SQL. Se houver uma sessão ativa no Data Management (DMS), utilize-a para executar comandos SQL.
Conecte-se ao banco de dados a partir de uma instância do Elastic Compute Service (ECS) ou faça login no Data Management (DMS) e execute o seguinte comando SQL para visualizar e solucionar problemas de threads lentas. Para mais informações, consulte:
SHOW PROCESSLIST;
A coluna Host nos resultados mostra o endereço IP de source da conexão.
Os resultados incluem as colunas ID, User, Host, db, Command e Time. Verifique a coluna Command para determinar o estado de cada thread. Por exemplo, um comando Binlog Dump GTID indica uma conexão de replicação primário-réplica, e um comando Daemon indica um daemon agendador de eventos. Solucione problemas de threads com execução prolongada.
Resolução
-
Revise os detalhes das sessões da instância.
Acesse a lista de instâncias RDS, selecione uma região na barra de navegação superior e clique em ID da instância desejada.
No painel de navegação à esquerda, escolha .
Na aba Session Management, visualize os detalhes das sessões da instância. Para mais informações, consulte Sessões da instância.
-
Verifique a configuração de max_user_connections da instância de banco de dados.
Consulte o valor do parâmetro max_user_connections das duas formas abaixo:
-
Pelo console do ApsaraDB RDS:
Acesse a lista de instâncias RDS, selecione uma região na barra de navegação superior e clique em ID da instância desejada.
No painel de navegação à esquerda, clique em Parameters.
Na aba Editable Parameters, visualize o valor do parâmetro max_user_connections.
-
Faça login no ApsaraDB RDS for MySQL e execute o comando a seguir para verificar o valor do parâmetro max_user_connections.
show variables like 'max_user_connections';
-
Após confirmar que há recursos de memória suficientes, aumente o valor do parâmetro max_user_connections. Para mais informações, consulte Modificar o número máximo de conexões.
-
Se o problema persistir, tente os métodos a seguir:
Solucione problemas e otimize cenários com alta contagem de conexões. Para mais informações, consulte O que fazer quando o número de conexões de uma instância do ApsaraDB RDS for MySQL atinge o limite superior.
Reinicie a instância para liberar todas as conexões. Para mais informações, consulte Reiniciar uma instância.