Surveiller les connexions à la base de données MySQL

nnx

WRInaute occasionnel
Salut,

Dimanche je me suis rendu compte que j'avais des erreurs sur mon site : régulièrement j'ai un message d'erreur disant qu'il y a trop de connexion simultané à la base de données. Ou parfois ça me dit "Connexion à la base perdu durant la requête."

Je suis sur un serveur mutualisé chez OVH, en multi site. Le mardi d'avant j'ai mis à jour phpbb et le thème du forum. Sinon je n'ai touché à aucun script de mes sites. D'ailleurs à part un script perso basique qui fonctionne depuis 10 ans, 2 wordpress à jour et un phpbb, c'est tout ce que j'ai qui attaque cette base.

phpBB a déclaré un hack sur leur site, et moi j'ai téléchargé le script 3 jours avant. J'ai tenté l'update, et il a foiré. J'ai alors fait la mise à jour en uploadant tous les fichiers de phpbb (zip complet, pas uniquement la mise à jour) est tout s'est bien passé (au moins en apparance)

J'ai analysé les logs web, j'ai trouvé des attaques sur les pages de login, j'ai trouvé un serveur qui a aspiré mon site dimanche, et rien d'exceptionnel cette semaine. Le traffic a été divisé par 2 (moins de 150 visiteurs quotidiens sur 3 sites qui attaque la base). Oui, ce sont des petits sites...

Pour réussir à me connecter à phpmyadmin, j'ai dû bloquer l'accès à mon forum via le htaccess. Je ne sais pas si il y a un lien : j'ai supprimé toutes les tables que je n'utilisais plus depuis des mois et j'ai "optimisé" l'espace des tables.

Rien n'y fait, la situation ne s'améliore pas.

Le support OVH ne m'a pas aidé, mis à part en disant que mes scripts devaient oublier de fermer les connections à mysql.

Ce soir je viens de tenter de désactiver le thème phpbb. C'est un de 2 éléments mis à jour.
Je ne sais pas combien de temps il faut pour que des connexions actives à mysql soient désactivées.
Je ne sais pas non plus si sur les mutu OVH, un autre site internet peut consommer "mes connexions" ou si mon "pool" de connexion (30) m'est entièrement réservé.

Je me demande s'il y a une solution permettant de savoir quel script php déclenche des requêtes, avec l'heure de connexion. Mais j'ai rien trouvé dans les logs OVH ni sur le net.

Si quelqu'un à une idée, je suis preneur. Je commence à désespérer... Pour l'instant ma seule idée c'est de couper les sites un à un pour identifier celui qui pose problème (ils sont tous mono cms, sauf un) puis je désactiverai des plugin sur le site que j'arriverai à isoler.

Peut être que l'un d'entre vous pourra m'aiguiller...
 

rick38

WRInaute passionné
Les connexions à la base de données sont fermées à la fin de l'exécution d'un script, donc "oublier" de les fermer ne peut pas vraiment être un problème (même si c'est mieux de les fermer explicitement, pour diminuer un peu de temps de connexion).

Je ne connais pas phpBB, personnellement j'évite tout script que je n'ai pas codé moi-même sur ce type d'hébergement, un mutualisé "perso" OVH, et je fais un maximum de cache pour limiter le nombre de requêtes. S'il y a une attaque, il n'y a pas de connexion supplémentaire, ça renvoie le cache.

J'ai pourtant des "Connexion à la base perdu durant la requête." en pleine nuit, ce message n'est pas forcément dû à tes scripts mais à la base de données mutualisée : quand les autres sites l'utilisent trop, elle devient trop lente, tout simplement. Tu peux investir dans une base de données dédiée éventuellement pour régler le problème.

En temps réel tu peux voir le nombre de connexions en exécutant la requête "SHOW PROCESSLIST;".
 

nnx

WRInaute occasionnel
Salut,

Merci pour ta réponse. Après une semaine à galérer sur le site, à nettoyer les base et analyser les logs, tout est rentré dans l'ordre. Après insistance au SAV, ils m'apprennent qu'une intervention a eu lieu sur le serveur de bdd sans me dire quoi, sans excuse, alors que dans les 2 premiers messages que j'avais eu avant on me disait poliment "prend un hébergement plus gros" ou encore "vérifie tes scripts ou prend un webmaster professionnel, voici la liste de nos partenaires...".
 

Discussions similaires

Haut