Ir para o conteúdo principal
Atendimento (62) 3142-5255

Limite de conexões simultâneas no MySQL

Vamos tratar sobre os limites de conexões no MySQL. Apesar de ser algo relativamente fácil, é importante saber o conceito, pois isso influi tanto no ambiente de trabalho ou na prova de certificação que encontrei em alguns dump’s.

Em qualquer aplicação Web ou correlatas, é comum identificar a falha de acesso com esta:

‘User XXX already has more than max_user_connections active connections’

 

Motivo: O usuário excedeu o limite de conexões  estabelecida no servidor.

Como identificar o limite? Abra o seu arquivo my.cnf ou my.ini e procure pelas variáveis:

 

 
1
2
3
4
[mysqld]
 
max_connections = 1000
max_user_connections = 200

 

Ou através de uma conexão com o MySQL, execute:

 

 
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1000  |
+-----------------+-------+
 
mysql> show variables like 'max_user_connections';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| max_user_connections | 200   |
+----------------------+-------+

 

Ou seja, com base nos valores acima é possível apontar que o limite de conexões com o servidor ‘max_connections’ é de 1000, enquanto o limite de conexões de um único usuário ‘max_user_connections’ é de 200.

Um cenário que já me gerou dúvidas e é comum nos ambientes:

 

 
1
2
3
4
[mysqld]
 
max_connections = 1000
max_user_connections = 0

 

Uma vez que o ‘max_user_connections’ esteja com o valor 0, você passa para a instância que os usuários, independente da quantidade devem respeitar o limite de acessos ao servidor, que neste caso é 1000.

Caso um ou mais usuários alcancem o limite determinado no ‘max_connections’, será retornado o erro de Too many Connections nas próximas tentativas.

Outra forma de definir o limite de conexão a um usuário é através da tabela user do mysql, ou pelo grant, como podemos ver abaixo:

– Utilizando o grant, primeiro crio um usuário de teste e depois adiciono uma permissão qualquer referenciando no final o with max_user_connections 10:

Para consultar o valor do ‘max_user_connections’, basta realizar um select na mysql.user:

É possível alterar este valor direto na tabela user, onde a vantagem é que para o novo valor entrar em vigor, não é necessário reiniciar o servidor MySQL:

Caso você altere a variável max_user_connections no my.cnf ou my.ini, é necessário reiniciar o MySQL para a alteração entrar em vigor, já que ela não é uma variável dinâmica.

 

 

Não encontrou o que procura?

Nossa equipe de suporte está pronta para ajudar.

Entrar em contato