Meu erro de SQL: muitas conexões

1

Meu site está apresentando um erro relacionado ao banco de dados.

O erro diz: Aviso: mysql_connect () [function.mysql-connect]: Muitas conexões em /home/host1/public_html/www.mysite.com/db_connection.php na linha 2.Não poderia conectar error.Too muitas conexões.

Eu recebo o erro ocasionalmente, mas quando eu atualizo a página, digamos, após 20 segundos, o erro desaparece e a página aparece normalmente. Eu tentei corrigir isso, colocando um código para fechar a conexão sql após a página terminar o carregamento. Mas mesmo depois disso eu recebi esse erro. Você pode nos dizer o que poderia estar errado? É um problema no servidor ou está relacionado ao meu código?

    
por user73092 04.03.2011 / 14:39

4 respostas

2

Algumas coisas para verificar:

Você está usando mysql_pconnect para se conectar ao banco de dados? Isso fará com que uma conexão persistente permaneça aberta depois de estabelecida e reutilize essa conexão, em vez de criar uma nova conexão db a cada vez.

Além disso, verifique max_connections e max_user_connections no arquivo my.cnf, já que você pode estar atingindo um limite definido nessas duas variáveis.

    
por 04.03.2011 / 14:49
2

Se você executar essa consulta:

SHOW PROCESSLIST;

Você verá o que todas as conexões estão ativas no momento e o que elas estão fazendo. Isso deve lhe dar uma idéia melhor do que está atrasando as coisas. Com o tempo, as conexões podem ficar presas, e é possível que elas fiquem paradas por um longo tempo. Mais provavelmente, você tem um script hackeado (ou script mal escrito causando muitos bloqueios).

    
por 04.03.2011 / 16:51
1

Você provavelmente não está fechando a conexão no seu script php. Usando mysql_close () , que explicitamente fecha as conexões. O uso de mysql_close () em conjunto com mysql_connect () garantiria que a conexão seja fechada.

    
por 04.03.2011 / 14:50
1

Se você fechar com sucesso as conexões depois que as consultas terminarem, tente aumentar max_connections em my.cnf.

O administrador do MySQL no seu pacote de ferramentas GUI pode lhe dar uma idéia do que está acontecendo.

    
por 04.03.2011 / 14:51