Erreur: mysqli::real_connect(): (HY000/1203): User .........already has more than 'max_
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Erreur: mysqli::real_connect(): (HY000/1203): User .........already has more than 'max_

by
MickaelB7
Created on 2023-10-03 12:57:10 (edited on 2024-11-18 11:02:07) in Hébergements Web

Bonjour à tous,
depuis hier j'ai des gros soucis pour me connecter à la base de donnée.
quand je tente de me connécter j'ai ce message mysqli::real_connect(): (HY000/1203): User MonUser already has more than 'max_user_connections' active connections, de temps en temps j'arrive a me connecter et je suis rapidement déconnecter dès que je souhate soit faire un simple tri sur un champs ou cliquer sur une table. J'ai ouvert un ticket, mais il est fermé, car apparament aucun souci sur le service. voici une capture de logs. [Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10149: FastCGI: incomplete headers (0 bytes) received from server "/homez.1024/monsite/www/emploi.php"
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10149: FastCGI: incomplete headers (0 bytes) received from server "/homez.1024/monsite/www/emploi.php"
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] (104)Connection reset by peer: AH10143: FastCGI: comm with server "/homez.1024/monsite/www/emploi.php" aborted: read failed
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10149: FastCGI: incomplete headers (0 bytes) received from server "/homez.1024/monsite/www/emploi.php"
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] (104)Connection reset by peer: AH10143: FastCGI: comm with server "/homez.1024/monsite/www/emploi.php" aborted: read failed
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10149: FastCGI: incomplete headers (0 bytes) received from server "/homez.1024/monsite/www/emploi.php"
[Tue Oct 03 02:46:24 2023] [error] [client ....] [host www.monsite.com] AH10157: FastCGI: An error happened during Fastcgi processing, fallback to CGI
[Tue Oct 03 10:51:05 2023] [error] [client ....] [host www.monsite.com] AH10141: FastCGI: comm with server "/homez.1024/monsite/www/chr/recrutement-chefs-cuisine-paris.php" aborted: idle timeout (160 sec)
[Tue Oct 03 10:51:05 2023] [error] [client ....] [host www.monsite.com] AH00524: Handler for fastcgi-script returned invalid result code 1


7 Replies ( Latest reply on 2024-11-18 11:03:13 by
SergeR6
)

Bonjour @MickaelB7

Tout d'abord quel domaine s'il vous plaît ?

Votre problème semble caractéristique d'un site fait maison. Est-ce le cas ?

Sinon quel CMS utilisez-vous ?
Quelle version de PHP ?
Quelle version du CMS ?

Quel abonnement d'hébergement avez-vous chez OVH ?

Bonjour et merci pour ton retour. Oui c'est un site maison en php et je referme toutes mes connexions pdo. Ma verions php 8.1 j'ai une offre "pro" et donc aprés vérifications je suis limités à 30 connexions instantanées. Je ne sais pas si cela t'ai trés utiles. j'ai ouver un ticket qui pour l'instant reste sans retour ticket du
03/10/2023 13:01


Oui c'est un site maison en php et je referme toutes mes connexions pdo.

Fermez-vous vos connexions systématiquement à la fin de chaque script avec la commande :
> $pdo = null;

Combien de visiteurs par heure ?

Bonjour,

attention, pour clore une connexion PDO il faut détruire toute les variables utilisés par PDO.

[code]
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// use the connection here
$sth = $dbh->query('SELECT * FROM foo');

// and now we're done; close it
$sth = null;
$dbh = null;
?>
[/code]
Source : https://www.php.net/manual/en/pdo.connections.php

Sinon votre problématique ressemble très fortement a une connexion non fermé quelque part.

Cordialement, janus57


Combien de visiteurs par heure ?


oui effectivement je referme bien avec une déclaration null, concernant le nombre de visiteur par heure rien que le robot YandexBot apparement le un moteur de recherche russe est à 100 000 requette hier, donc il se peux que le souci viennent d'ici ;-(

Effectivement, c'est une pratique que je n'ai pas fait, je corrige de suite merci

Alors bloquer ce bot

Bonjour,


100 000 requette hier

c'est rien ça (ça fait +/-70requêtes à la minutes), sachant que si sur votre page vous avez 5 images cela fait déjà 6 requêtes à chaque appel de la page.

Si on prend comme hypothèse qu'une requête SQL prend 1s et donc utilise une connexion pendant 1 secondes, et cela à chaque visiteur il vous faut 30visiteurs/secondes pour saturer les 30 connexions, soit 1800visiteurs à la minutes, si vous avez ce message d'erreur pendant 1minute.

Cordialement, janus57

C'est bon, j'ai eu un retour d'ovh. "Il peut s'agir d'un effet de bord avec un autre client qui sature sont hébergement." et actuellement cela se rétablie petit a petit. @ suivre... Merci à vous deux pour votre aide.

Bloquer quand même le robot YandexBot.

Bonsoir, j'ai le même souci en ce moment avec le même message d'erreur. Je ne sais pas si cela a quelquechose à voir avec l'update des bases de données OVH il y a quelques mois, mais ça a commencé peu après. J'ai eu des messages d'OVH m'indiquant que mon site avait du succès car il enregistrait beaucoup de connexions (inhabituel car c'est un petit site fait maison en php et il a toujours bien tourné).
Mon hébergement est Offre Perso
Ma Version PHP globale 7.3
Alors peut-être qu'il y a des connexions que j'ai mal fermé en modifiant une page.
Lorsque je lis le code conseillé plus haut, c'est quelque chose que je ne semble jamais faire . J'ai toujours fermé les connexions de la sorte :
try{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=ma_base.mysql.db;dbname=nom', 'nom-2', 'password', $pdo_options); $bdd->exec("set names utf8");
$reponse = $bdd->query('SELECT * FROM boutique WHERE id=328');
$donnees=$reponse->fetch();}
catch(Exception $e)
{die('Erreur : '.$e->getMessage());}

Sur phpmyadmin j'ai ce message en rouge :
SET NAMES 'utf8mb4' COLLATE 'utf8mb4_general_ci';
#1226 - User 'nom_user' has exceeded the 'max_questions' resource (current value: 50925)



Je suis allé voir les stats, effectivement le nombre de pages vues en erreur en septembre ont explosées à plus de 300 000. Il y a forcément un problème quelquepart.

Pouvez-vous me confirmer que je dois checker tout le code de mon site pour mettre partout des
$reponse = null;
$bdd = null;

Me conseillez-vous d'écrire ça avant ou après le catch et die ?

$donnees=$reponse->fetch();
$reponse = null;
$bdd = null;}
catch(Exception $e)
{die('Erreur : '.$e->getMessage());}

Par endroits, j'avais aussi mis des
$reponse->closeCursor();
Est-ce que c'est utile et a le même effet que $reponse = null; ??
Merci d'avance.

EDIT : Il est 00:50, et apparemment c'est revenu, ça ne me fait plus l'erreur. Mais pour combien de temps ?
Petite question subsidiaire, comment fait-on dans OVH pour "Bloquer le robot YandexBot" (tel que conseillé au dessus) ??
Merci d'avance.