Foros del Web » Programando para Internet » PHP »

PROBLEMA GRAVE con el max. conections MySQL !

Estas en el tema de PROBLEMA GRAVE con el max. conections MySQL ! en el foro de PHP en Foros del Web. Gente estoy un poco desesperado, hoy mientras le mostraba como estaba quedando mi sitio a un amigo (eramos 2 navegando la web) me salio el ...
  #1 (permalink)  
Antiguo 18/11/2005, 08:29
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
PROBLEMA GRAVE con el max. conections MySQL !

Gente estoy un poco desesperado, hoy mientras le mostraba como estaba quedando mi sitio a un amigo (eramos 2 navegando la web) me salio el cartel de maximo de conexiones suepradas (45).

Jamas me espere esto ya que RELIGIOSAMENTE cierro las conexiones cada vez que termino de usar la base.

No me queda mas que pensar que todo el proceso que hice en los casi 40 archivos de mi pagian ESTUVO MAL !

¿Me dicen si esto esta bien?

tengo un INCLUDE llamado bd.php con la funcion:
Código PHP:
function conectar_bd() {
    
$link mysql_connect("localhost","usuario","contraseña") or die ("no se ha podido conectar");
    
mysql_select_db("mi_base") or die("Error al tratar de selecccionar esta base");

    return 
$link;

El 80% de las paginas hacen al menos 1 consulta por contenido dinamico, entonces incluyo el archivo:

Código PHP:
include_once($_SERVER['DOCUMENT_ROOT'].'/include/bd.php'); 
desde el archivo de la pagian, hago "$link = conectar_bd();", luego tiro los queries, y cierro con "mysql_close($link);".

NO ENTIENDO por que supera tan rapido las 45 conexiones,
¿Acaso no lo hacen asi todos el procedimiento?
¿Si la conexion la abre una funcion dentro de un INCLUDE, esa conexion la tiene q cerrar la MISMA FUNCION que la abrio / una funcion en el mismo INCLUDE?

¿que cosas deberia tener en cuenta para encontrar la falla?

MIL GRACIAS
  #2 (permalink)  
Antiguo 18/11/2005, 09:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Al parecer no usas conexiones persistentes .. así que no deberías tener ese problema.

Cita:
¿Acaso no lo hacen asi todos el procedimiento?
Si, .. algunos usa una función .. otros un objeto .. otros lo hacen repetido donde necesiten conectarse a su BD .. etc ...

Cita:
¿Si la conexion la abre una funcion dentro de un INCLUDE, esa conexion la tiene q cerrar la MISMA FUNCION que la abrio / una funcion en el mismo INCLUDE?
Los "links" de conexión a tu BD son globales (para el script que lo crea, no entre scripts) .. de hecho si haces una sóla conexión a tu BD y tal cual fuerzas tu función (a la cual no le pasas ningún paretro como para poder crear dos o más conexiones simultáneas a distintas BD en un mismo script .. podrías hacer:

Código PHP:
function conectar_bd() { 
    
mysql_connect("localhost","usuario","contraseña") or die ("no se ha podido conectar"); 
    
mysql_select_db("mi_base") or die("Error al tratar de selecccionar esta base");     

y usarlo:
Código PHP:
<?
include("mysql_funciones.php");

conectar_db();
mysql_query($sql);
mysql_close();
?>
Un saludo,
  #3 (permalink)  
Antiguo 23/11/2005, 07:22
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Ey muchas gracias !
No pude contestar antes, tuve problemas con mi ISP! :S

Me quedo un poco mas tranquilo entonces... lo unico que se me ocurre es que recientemente en mi hosting pusieron como regla que no se podrian utilizar variables GLOBALES... ¿Puede tener algo que ver esto?

Un saludo y gracias nuevamente.
  #4 (permalink)  
Antiguo 23/11/2005, 10:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
lo unico que se me ocurre es que recientemente en mi hosting pusieron como regla que no se podrian utilizar variables GLOBALES... ¿Puede tener algo que ver esto?
No, .. en principio tu creas una función (la de conectar_db() ... que no variabels globales y devuelve su link de conexión en una variable). El hecho de que un "link" de conexión a Mysql sea "global" para la ejecución de un script no tiene nada que ver con "register_globals a ON u OFF" de PHP.

Un saludo,
  #5 (permalink)  
Antiguo 23/11/2005, 13:04
 
Fecha de Ingreso: octubre-2004
Mensajes: 31
Antigüedad: 19 años, 5 meses
Puntos: 0
Si tienes la pagina alojada en un servidor compartido, posiblemente el problema venga de los accesos al servidor MySQL de las otras webs alojadas.
  #6 (permalink)  
Antiguo 23/11/2005, 21:59
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Cluster: Ok, entonces me relajo y veo a de donde pudo haber salido el error.

Gracias nuevamente por tu paciencia ;)

Sirenon: ¿estas seguro? Entiendo que hay un limite de 45 para cada usuario. Consultaria en mi hosting, ya que si tu lo dices puede ser seguro, pero me aparece que es como digo yo.

Vere q me dicen ! Gracias.
  #7 (permalink)  
Antiguo 24/11/2005, 04:06
 
Fecha de Ingreso: octubre-2004
Mensajes: 31
Antigüedad: 19 años, 5 meses
Puntos: 0
Yo tenia una pagina en un hosting compartido que de tanto en cuanto daba ese error y te juro que ni de coña tenia 45 accesos a la BD.
  #8 (permalink)  
Antiguo 30/11/2005, 06:12
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Bueno a consultar con mi hosting entonces... muchas gracias, lo voy a tener que ver BIEN eso ya que mi web es puro programa y acceso a BD... y como apunta a ser para una "GRAN COMUNIDAD" el dia que esto me pase mientras mi sitio ya haya sido publicado no me va a quedar mas remedio que tener el sitio "fuera de servicio" y mostrando mensajes APABULLANTES para los demas usuarios

Gracias nuevamente a ambos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.