1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    août 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : août 2016
    Messages : 33
    Points : 25
    Points
    25

    Par défaut Lost connection to MySQL server

    Bonjour à tous,

    J'ai conçu une application il y'a à peu près 1 an qui tourne assez bien mais certaines fois j'ai un message d'erreur qui me dit :

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2013 Lost connection to MySQL server during query' in liste-commandes.php:296 Stack trace: #0 liste-commandes.php(296): PDOStatement->execute(Array) #1 {main} thrown in liste-commandes.php on line 296

    Je pensais au début qu'il s'agissait de mon code PHP mais je crois plutôt qu'il s'agit de ma base de données ou de mes requêtes. En essayant sur phpmyadmin, il me répond "Lost connection to MySQL server'

    Voici la requête en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT i.id_intervention, i.code_intervention, i.date_souhaitee, i.heure_debut, i.heure_fin, i.duree, i.frequence, i.materiel, i.signature, i.bl_mail, i.client_cmd, chantiers.id_client, chantiers.nom_chantier, chantiers.adresse AS adresse_chantier, chantiers.code_postal AS code_postal_chantier, chantiers.ville AS ville_chantier, clients.raison_sociale, clients.societe
    FROM interventions AS i
    INNER JOIN chantiers ON i.id_chantier = chantiers.id_chantier
    INNER JOIN clients ON chantiers.id_client = clients.id_client
    WHERE i.status != 2
    AND i.valide = 1
    AND i.type_chauffeur = "Ampiroll"
    AND i.date_souhaitee > '2017-08-31'
    ORDER BY i.date_souhaitee DESC
    Sur les tables tous les champs concernés par un WHERE sont des index.
    Cette table interventions contient environ 13000 entrées et je récupère depuis fin août pour justement en avoir moins à charger mais sans succès.
    J'ai sans doute très mal conçu ma base mais actuellement je pense pas pouvoir faire de modifications dans l'immédiat...

    Si quelqu'un aurait une idée pour que cette requête fonctionne comme avant. Merci d'avance

  2. #2
    Membre confirmé Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2012
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : avril 2012
    Messages : 155
    Points : 482
    Points
    482

    Par défaut

    Bonjour DeRozan31,
    MySQL ne va utiliser qu'un seul index parmi les 4 champs utilisés dans ton WHERE. Si tu as indexé chacun des champs séparément, tu peux ajouter UN index sur PLUSIEURS de tes champs présents dans le WHERE, ce qui devrait accélérer ta requête.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    août 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : août 2016
    Messages : 33
    Points : 25
    Points
    25

    Par défaut

    Bonjour sebwar,

    Merci d'avoir pris le temps de me répondre.

    Effectivement je n'ai mis qu'un INDEX sur chaque colonne, comment fait-on pour mettre un INDEX sur plusieurs colonnes ?

  4. #4
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    15 390
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 15 390
    Points : 29 967
    Points
    29 967
    Billets dans le blog
    4

    Par défaut

    De la même manière qu'un index sur une colonne !

    Commande simplifiée par rapport à la doc MySQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE INDEX index_name
    ON tbl_name (index_col_name_1,index_col_name_2,...)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Expert éminent Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    février 2011
    Messages
    3 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : février 2011
    Messages : 3 082
    Points : 9 536
    Points
    9 536

    Par défaut

    Salut à tous.

    Deux questions :

    1) quelle est la durée à l'exécution de votre requête ?

    2) quels sont les paramètres de :
    --> connect-timeout
    --> interactive-timeout
    --> wait-timeout

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2009, 18h25
  2. Lost connection to MySQL server during query
    Par msow dans le forum Outils
    Réponses: 4
    Dernier message: 12/06/2009, 19h07
  3. "Lost connection to MySQL server during query"
    Par berceker united dans le forum Requêtes
    Réponses: 7
    Dernier message: 08/12/2007, 03h07
  4. Réponses: 3
    Dernier message: 25/07/2007, 07h48
  5. Lost connection to MySQL server during query
    Par Huntress dans le forum Outils
    Réponses: 3
    Dernier message: 20/09/2005, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo