Problema de conexión a la base de datos vBulletin

juaniyo1 Seguir

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
2 May 2009
Mensajes
3
Hola a todos, tengo un foro que desde el primer día me da este error. Probé instalando diferentes vbulletin 3.8.1 y al final opté por cambiar de versión a ver si se solucionaba. Tengo la 3.8.0 y sigue igual. Recibo muchos correos al día diciendo lo mismo:

Database error in vBulletin :

mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: User todoultraport already has more than 'max_user_connections' active connections
/homez.110/todoultr/www/includes/class_core.php on line 311

MySQL Error :
Error Number :
Request Date : Saturday, May 2nd 2009 @ 02:24:03 AM
Error Date : Saturday, May 2nd 2009 @ 02:24:03 AM
Script : www.todo-ultraportatiles.es/.......
Referrer : www.todo-ultraportatiles.es/un_post_cualquiera
IP Address : una_ip
Username :
Classname : vb_database
MySQL Version :
¿Qué puedo hacer para solucionarlo?

PD: tengo un hosting compartido con OVH, les he explicado lo que me pasa y dicen que no es su problema.
 

Golem

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
27 Jul 2008
Mensajes
1.245
eso me pasa a mi, pero me lega por mail, la pagina no se cae ni nda
 

juaniyo1

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
2 May 2009
Mensajes
3
igual que a mí, me llegan por mail. A la web aparentemente no le pasa nada, a veces pone Bad request o algo así; retrocedo, pincho de nuevo en el enlace y ya carga bien.
 

pepe martin

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
2 Dic 2007
Mensajes
391
Creo que el fallo esta en la variable max_user_connections que esta en php.ini o my.cnf, archivos de configuracion del servidor. Si tienes un servidor dedicad tienes que entrar desde ssh a configurarlo, si tienes un hosting dile a tu empresa que te lo modifique.
Tambien si el foro que usas es null, es habitual que de ese error
 

Golem

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
27 Jul 2008
Mensajes
1.245
significa de alguna manera que ciertos usuarios no podran ver el foro? llegando al maximo de users
 

Daniel B.

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Abr 2009
Mensajes
188
Mmm no tanto, se refiere a conexiones MySQL, por lo general varios usuarios suelen usar una sentencia, cuando mysql no soporta más, muestra un error 500 (o bueno, pueden ser muchos más :p)...

Este error significa que MySQL no soporta sentencias máximas de 1mb (por defecto), debes tener acceso a los archivos de configuración para poder solucionar esto, o puedes hacerlo por .htaccess, sin embargo algunos comandos no son aceptados por algunas compañías entonces simplemente un robot te bloquea la web hasta que quites los cambios "maliciosos" que le hiciste al .htaccess.
 

Golem

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
27 Jul 2008
Mensajes
1.245
pero esos users los cuales me salto el error podran ver la pagina o si llega al maximo no pasa ndad?
 

Daniel B.

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Abr 2009
Mensajes
188
Mmm a veces, te explico mejor cómo es la cuestión.

A veces unas consultas de MySQL no se cierran, y quedan abiertas, esto causa que continuamente MySQL ocupe y ocupe y ocupe nuevas conexiones vacías, hasta que llega al tope y puff, error MySQL.

Por lo general algunas consultas se anulan por tiempo de uso, entonces es relativo, es como una ola, llega a la playa y se va poco a poco, entonces depende.

La causa:
-Un Hack, puede ser que un plugin tenga un defecto, no sea compatible con tu vbulletin o usa sentencias que la versión MySQL de tu servidor no soporta, es muy común esto, deshabilita algunos hacks y prueba el foro.

-Algunas consultas de MySQL toman mucho tiempo, cómo las búsquedas, no me adentro en cosas específicas, es un carretazo, entonces si sus sitios son de mucho tráfico, por lo general estas búsquedas tumban el servidor dando, o error 500, o el error del que hablamos.

·Si esto sucede muy seguido, ve a los archivos de configuración y verifica que
PHP:
$config['MasterServer']['usepconnect'] = 0;

Esta en Off, osea, así como el ejemplo anterior, jeje.

·Deshabilita los hacks como ya dije, pueden ser causados por ellos.

·Contacta con tu proveedor, diles que cuanto es el valor de "max_user_connections", y si es posible, diles que aumenten ese valor, esa puede también ser una de las causas.

·Si continua el error, cambia de host a otro con configuraciones del servidor un poco más elevadas o contrata un plan dedicado (VPS, Dedicado, Semi-Dedicado (que por cierto, no hay que confundir un Semi-Dedicado con un Servidor Dedicado ya que los dos términos no se relacionan para nada!!)).

·Si ya estas en un dedicado o VPS, considera aumentar la conexión del servidor, el nivel normal de Server Load es de 1.0, si este es superior en mucho sentido de la palabra, :p , aumenta la memoria RAM, la conexión, y la configuración de Apache.

·Estar seguros de que "persistent_connections" esta cerrado en config.php, en vBulletin Options -> Server Settings and Optimization Options puedes seleccionar la cantidad de sesiones permitidas, aunque es un número pues ya sabes, de sesiones de usuarios :p

·Borrar las Cookies de tu navegador xDD a veces el problema se soluciona, pero sigues viendo el error, en el caso de Chrome por ejemplo, guarda Cookies practicamente de todo ¬¬, así que borralas y presiona F5.

·Los robots, google, yahoo, live, etc... son robots de search engine (motores de búsqueda) y gastan cualquier otro recurso como si fueran otro visitante más, puedes modificar el robots.txt para impedir el acceso a estos y mejor utilizar sitemaps o comprobantes más prudentes.




Puedes usar un reemplazo para conexiones mysql aleatorias:
En vez de esto en config.php:
PHP:
$config['MasterServer']['username'] = ‘uname’;
$config['MasterServer']['password'] = ‘pass’;

Un código de usuarios al azar, tres usuarios de ejemplo:
PHP:
$dbusers = array(
array(’user’ => ‘mysqluser1′, ‘password’ => ‘pass1′) // Primera combinación de usuario/password MySQL
, array(’user’ => ‘mysqluser2′, ‘password’ => ‘pass2′) // Segunda combinación de usuario/password MySQL
, array(’user’ => ‘mysqluser3′, ‘password’ => ‘pass3′) // Tercera combinación de usuario/password MySQL
);
$mysql_user = $dbusers[rand(0, count($dbusers) - 1)];
$config['MasterServer']['username'] = $mysql_user['user'];
$config['MasterServer']['password'] = $mysql_user['password'];

Pero pues ya sabes, no hay que usar códigos así por que si, debes saber lo que haces, las causas son miles!, cómo cambiaras de Host si tu problema quizás es de un simple plugin!, ves? ;), siempre hay que hacer backups de todo todo, siempre siempre ;)

 

juaniyo1

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
2 May 2009
Mensajes
3
Muchas gracias Daniel B., se ve que te has currado el post. En el config.php he verificado:
$config['MasterServer']['usepconnect'] = 0;
Lo segundo que me has dicho de reemplazar el código creo que no es posible porque mi hosting sólo permite una base de datos y un usuario para acceder a ella.

He probado a instalar un vBulletin 3.8.1 en otro hosting de estos gratuitos y me da el mismo error, a lo mejor yo no configuro bien el config.php

Suponiendo que los datos fueran:
MySQL Database: juaniyosql
MySQL User: juaniyo1
MySQL Host: mysql5-10.start10g
MySQL Password: juanjuan

Lo que yo modificaría es lo que he puesto en negrita:
$config['Database']['dbtype'] = 'mysql';
$config['Database']['dbname'] = 'juaniyosql';
$config['Database']['tableprefix'] = 'vb_';
$config['Database']['technicalemail'] = 'postmaster@mi-web.es';
$config['Database']['force_sql_mode'] = false;
$config['MasterServer']['servername'] = 'mysql5-10.start10g';
$config['MasterServer']['port'] = 3306;
$config['MasterServer']['username'] = 'juaniyo1';
$config['MasterServer']['password'] = 'juanjuan';
$config['MasterServer']['usepconnect'] = 0;
$config['SlaveServer']['servername'] = '';
$config['SlaveServer']['port'] = 3306;
$config['SlaveServer']['username'] = '';
$config['SlaveServer']['password'] = '';
$config['SlaveServer']['usepconnect'] = 0;
$config['Misc']['admincpdir'] = 'admincp';
$config['Misc']['modcpdir'] = 'modcp';
$config['Misc']['cookieprefix'] = 'bb';
$config['Misc']['forumpath'] = '';
$config['SpecialUsers']['canviewadminlog'] = '1';
$config['SpecialUsers']['canpruneadminlog'] = '1';
$config['SpecialUsers']['canrunqueries'] = '';
$config['SpecialUsers']['undeletableusers'] = '';
$config['SpecialUsers']['superadministrators'] = '1';
$config['Mysqli']['ini_file'] = '';
$config['Misc']['maxwidth'] = 2592;
$config['Misc']['maxheight'] = 1944;
 

Daniel B.

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Abr 2009
Mensajes
188
Según veo va bien, me gustaría saber qué host gratuito y también saber si el prefijo es el correcto, recuerda que es mejor dejarlo por default a menos que en tu base de datos el prefijo si sea ese.
 
Arriba