Comparador de precios Comparador de precios


error max_user_connections active connections

Consulat y participa en ayudar a otros usuarios a resolver sus dudas en esta nueva version de oscommerce.
  • Anuncio
boxbonux

error max_user_connections active connections

Notapor reflex_ocasion » Mar Nov 14, 2017 12:50 pm

Todos hemos obtenido alguna vez el famoso error max_user_connections active connections
Código: Seleccionar todo
PHP Warning: mysqli_connect(): (42000/1203): User xxxxx already has more than 'max_user_connections' active connections in /home/xxxxx/public_html/includes/functions/database.php on line 20


Particularmente nunca le he dado mayor importancia pero últimamente ha sido una locura ya que el hosting genera un archivo log de error cada vez que ocurre un error y este ha llegado a pesar hasta 2 megas por culpa de esto! Ni que decir tiene que lo elimino cada vez que veo uno pero es que antes era de vez en cuando con un peso ridículo y ahora, de buenas a primera, ha sido diario de hasta 2 megas, una burrada

Tras buscar y buscar y seguir buscando una solución la he encontrado, pero antes voy a aclarar un par de cosas

- Este error aparece cuando hay demasiadas conexiones activas al mismo tiempo, lo que quiere decir que recibimos muchas visitas al mismo tiempo en cuyo caso hay que plantearse cambiar de hosting, de estar en uno compartido a estar en uno dedicado. Si es compartido el hosting va a limitar el uso de conexiones permitidas al mismo tiempo (yo tengo 35) porque los recursos se comparten entre todos mientras que en uno dedicado todos los recursos son nuestros, de nadie mas. El problema está en la configuración del hosting, no es nuestro, no es algo que hayamos programado mal ni nada parecido

- Parece ser que hay un bot chino que accede a todas las webs generando este error a razón de uno por segundo durante los diez minutos que nos está visitando. Parece que nos está atacando pero no es así, simplemente está indexando nuestra web. Una opción sería bloquear su IP

Cuando buscamos por internet podemos encontrar varias soluciones que no nos van a servir de mucho. Una dice que añadas un close() para que cierre la conexion automáticamente tras la consulta. Eso no sirve porque ya se cierra sola tras pasar un tiempo de inactividad, y si lo añades te puede dar otro tipo de error

La otra dice que hables con tu hosting para que te aumente la cantidad de conexiones permitidas lo cual no va a poder ser posible por la sencilla razon de que si te dan a ti mas recursos se los tienen que quitar a otro usuario que despues se quejará de lo mismo. Eso cuando es un hosting compartido porque cuando es dedicado no hay limite alguno

Hay una tercera que dice que lo hagas tu mismo siguiendo una serie de pasos, pero tampoco sirve a menos que sea en local en cuyo caso no tienes este problema ya que no hay límite o no suele haberlo. Cuando estas en hosting compartido tienes limitado el acceso a ciertas funciones, entre ellas la de otorgarte mas permisos para cambiar la configuración. O sea, que tampoco sirve

La cuarta es la correcta y es la mas dificil de encontrar, yo he tardado demasido tiempo en hacerlo. No voy a decir meses, voy a decir años, y eso que se publicó en 2010. Consiste en "repartir" la sesión en varias sesiones, valga la rebuznancia, digo redundancia. Como se hace esto? editando el archivo catalog/includes/configure.php

En catalog/includes/configure.php buscamos al final
Código: Seleccionar todo
  define('DB_SERVER', 'localhost');
  define('DB_SERVER_USERNAME', 'usuario_foro');
  define('DB_SERVER_PASSWORD', '***********');
  define('DB_DATABASE', 'foro_oscommerce');


y lo ponemos así
Código: Seleccionar todo
  define('DB_SERVER', 'localhost');
  define('DB_SERVER_USERNAME', 'usuario_foro');
$valeat = rand(1,9);
switch ($valeat) {
    case 1:
        $db_server_username = 'usuario_foro';
        break;
    case 2:
        $db_server_username = 'usuario_for2';
        break;
    case 3:
        $db_server_username = 'usuario_for3';
        break;
    case 4:
        $db_server_username = 'usuario_for4';
        break;
    case 5:
        $db_server_username = 'usuario_for5';
        break;
    case 6:
        $db_server_username = 'usuario_for6';
        break;
    case 7:
        $db_server_username = 'usuario_for7';
        break;
    case 8:
        $db_server_username = 'usuario_for8';
        break;
    case 9:
        $db_server_username = 'usuario_for9';
        break;
}
  define('DB_SERVER_PASSWORD', '***********');
  define('DB_DATABASE', 'foro_oscommerce');


De esta manera reducimos en un 90% la posibilidad de que el error vuelva a aparecer. Desde que lo he puesto ya no he vuelto a ver mas log de error, lo que no quiere decir que no vuelva a salirme algún día

Saludos a tod@s
reflex_ocasion
Moderador Global
 
Mensajes: 696
Registrado: Jue Ene 13, 2011 10:25 pm
Ubicación: Mijas Costa (Málaga)

Re: error max_user_connections active connections

Notapor Skualos » Mar Nov 14, 2017 3:11 pm

Hola.

Esto lo publicas como mejora del foro?
Skualos
Moderador Global
 
Mensajes: 3213
Registrado: Mié Feb 09, 2011 9:17 pm
Ubicación: Palafrugell

Re: error max_user_connections active connections

Notapor reflex_ocasion » Mar Nov 14, 2017 3:41 pm

Sirve para todo, no es solo para el foro, tambien las tiendas y hasta blogs, si tienes este tipo de error esta es la solución

Los datos que aparecen los he puesto así ya que esto es un foro, que cada uno ponga los suyos y que lo adapte. El primer caso es el nombre original del nombre de usuario, a partir de ahí es lo mismo todo el tiempo pero quitando la última letra o número que tengamos puesto como nombre de usuario y poniendo un número correlativo en su lugar empezando por el 2 y terminando con el 9

Si el último caracter del nombre de usuario de la base de datos es un número va a ser complicado que no haya un momento dado en que no entre en conflicto, así que recomiendo cambiar el nombre de usuario por otro cuyo último caracter no sea un número sino una letra
reflex_ocasion
Moderador Global
 
Mensajes: 696
Registrado: Jue Ene 13, 2011 10:25 pm
Ubicación: Mijas Costa (Málaga)

Re: error max_user_connections active connections

Notapor Skualos » Mar Nov 14, 2017 3:47 pm

aaah.. esque alguna vez, solo alguna habia pasado en el foro.
(por cierto... lo del chat del foro... no se usa mucho eh? :D )

Gracias.
Skualos
Moderador Global
 
Mensajes: 3213
Registrado: Mié Feb 09, 2011 9:17 pm
Ubicación: Palafrugell


  • Temas Similares
    Respuestas
    Vistas
    Autor

Volver a Dudas y Soluciones (programación)

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron