Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
de uns dias para cá, esta acontecendo direto isso no meu site e num to sabendo o que pode ser, alguem ja passou por isso, o que posso fazer?
Warning: mysql_connect() [function.mysql-connect]: User xxxxxxx already has more than 'max_user_connections' active connections in /home/xxxxxxx/public_html/cadastro/_classes/adodb/drivers/adodb-mysql.inc.php on line 188
como posso fechar, sem implicar sa partes que uso o banco
sim, você está usando mysql_pconnect? se for isso é só tirar o P e seus problemas acabam.
em qual arquivo posso verificar, pq no arquivo de conexao nao existe
encontrei o arquivo, tinha o mysql_pconnect ae coloquei mysql_connect porem ainda continua, o que mais pode ser ?
Oi!
Ja tentou usar mysql_close() no final do seu script?
Tipo:
<?php
mysql_connect(...);
/*
SEU CODIGO
*/
mysql_close();
?>Isso ocorre por que o mysql, dependendo de host para host, possui um limite de conexões por usuário, para assim evitar possiveis sobrecargas do servidor. Se você usa hospedagem compartilhada e tem um site com bastante acessos, e não fechar corretamente as conexões, você vai sofrer muito com isso. :(
Procure sempre fechar as conexões que você abrir com o banco de dados, usando a função que já mencionaram acima:
$conexao = mysql_connect('host', 'usuario', 'senha'); //efetua a conexão
//Manipulações no banco de dados
mysql_close($conexao); //Fecha a conexão com o banco de dados
Cumprimentos.
coloeuqi close pra todos lados e nada de resolver
fui no db e testei SHOW PROCESSLIST; e ta tendo muitas conexões em SLEEP, quanado mato uma ae o site volta ao normal
como saber onde ta o problema, ta tensooooo
tentei aumentar de 30 para mais, mas nao deixa, parece q locaweb bloqueia o acesso, tem alguma forma deu aumentar?
olha você pode tentar esconder o erro não é o certo mais resolvera seu poblema coloque uma @ na frente da linha onde o erro esta:
Ex.: erro nesta linha mysql_connect coloque @mysql_connect, isto escondera o erro...
Abraços
>
fui no db e testei SHOW PROCESSLIST; e ta tendo muitas conexões em SLEEP, quanado mato uma ae o site volta ao normal
Pode ser que as suas queries estejam demorando pra executar por problema de otimização das tabelas, verifique se elas estão devidamente indexadas.
>
tentei aumentar de 30 para mais, mas nao deixa, parece q locaweb bloqueia o acesso, tem alguma forma deu aumentar?
Se você utiliza servidor compartilhado não é possível aumentar o limite de conexões, tendo em vista que o limite já é colocado para que não haja excesso de conexões e assim vários clientes possam utilizar o mesmo banco de dados sem sobrecarga.
Se mesmo otimizando as suas tabelas e fechando as conexões o problema persistir, eu recomendo que contrate um servidor dedicado ou virtual para a sua aplicação.
Um abraço!
tipo eu uso um arquivo db.php onde tenho a conexao com o banco e em cada pagina eu chamo ese arquivo
$db->connect($host,$user,$senha,$banco);
$this->conn = $db;
eu tenho que por:
mysql_close($db);
ou apenas
mysql_close();
se eu coloco mysql_close($db); ae retorna:
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/xxxxxxx/public_html/site/pagina.php on line 181
Usar mysql_close() não é normalmente necessário, já que as conexões não persistentes são automaticamente fechadas ao final da execução do script.
Se o identificador de conexão não for especificado, a ultima conexão aberta por mysql_connect() é assumida.
>
Usar mysql_close() não é normalmente necessário, já que as conexões não persistentes são automaticamente fechadas ao final da execução do script.
Hummm! Nao sabia. Vlw.
então to lascado, nao consigo arrumar isso de jeito ennhum, de meia em meia hora, chega o limite de 30 usuarios, entquanto eu nao dar kill em algum processo, nao libera o site
tem alguma outra forma de resolver este maldito poblema
o pior que antes nao dava, do nada comecou a dar isso
tem como matar processo sempreque visitar o site? nao né? seria um jeito gambiarrado, mas resolveria por enquanto
tentei até usar sql cache nos select, mas nd
Warning: mysql_connect() [function.mysql-connect]: User xxxxxx already has more than 'max_user_connections' active connections in /home/xxxxx/public_html/cadastro/_classes/adodb/drivers/adodb-mysql.inc.php on line 188
Warning: mysql_connect() [function.mysql-connect]: User xxxxxx already has more than 'max_user_connections' active connections in /home/xxxxx/public_html/cadastro/_classes/adodb/drivers/adodb-mysql.inc.php on line 188
ae nestas linhas tem
185. function _connect($argHostname, $argUsername, $argPassword, $argDatabasename)
{
if (strnatcmp(PHP_VERSION,'4.3.0')>=0)
$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword, $this->forceNewConnect,$this->clientFlags);
else if (strnatcmp(PHP_VERSION,'4.2.0')>=0)
$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword,
$this->forceNewConnect);
else
$this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword);
if ($this->_connectionID === false) return false;
if ($argDatabasename) return $this->SelectDB($argDatabasename);
return true;Vá no phpMyAdmin e entre na aba Variáveis, lá você poderá encontrar a variável max_user_connections.
Verifique se o valor for zero(0), então não tem limites de conexão.
max_user_connections = 30
Tenta executar o seguinte comando no phpMyAdmin
GRANT ALL ON customer.* TO 'root'@'localhost'
WITH MAX_USER_CONNECTIONS 0;
Não esqueça de mudar "root'@'localhost" para a sua.
Testei aqui e alterou a variável sem erros
#1044 - Access denied for user 'xxxxxx'@'localhost' to database 'customer'
pesquisei em todas paginas para ver se tinha algum pconnect, achei alguns e removi todos, mas ainda nada, site fica praticamente offline por causa disso, dou kill em todos mas logo volta
tem alguma forma de saber de qual pagina q ta dando este problema?
Id User Host db Command Time State Info
50357347 xxxx 200.000.200.000:45203 xxxx Sleep 0 NULL
sera que tem uma forma de deixar o modo SLEEP mais rapido, pq ae vai matando automatico mais rapidamente, evitando que ocupe espaco
sera que alguem pode ter injetado algum sql inject que ta sobrecarregando isso?
Vendo por cima creio que deve ser por voce nao fechar a sua conexão com seu banco com isso ele excede o numero de conexoes