1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    août 2016
    Messages
    32
    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 : 32
    Points : 23
    Points
    23

    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 averti Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2012
    Messages
    115
    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 : 115
    Points : 381
    Points
    381

    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
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    août 2016
    Messages
    32
    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 : 32
    Points : 23
    Points
    23

    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 073
    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 073
    Points : 29 053
    Points
    29 053
    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
    2 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    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 : 2 919
    Points : 8 589
    Points
    8 589

    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