IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Message 'Duplicate index entry'


Sujet :

Administration MySQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 6
    Points
    6
    Par défaut [Résolu]Message 'Duplicate index entry'
    Bonjour,
    J'ai assez régulièrement ce message sur ma base MySQL (ainsi que 'Can't open file: xxxx.MYD (errno: 145)', l'erreur 145 correspondant à 'Table was marked as crashed and should be repaired'). A quoi est-ce que ça peut être du ? Mauvaise spécifications des index ou MySQL qui s'embrouille ? Des solutions ?
    Pour tout renseignements n'hésitez pas !...

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu devrais d'urgence utiliser myisamcheck, ton fichier d'index a l'air corrompu, mysql te le dit en plus (should be repaired).

  3. #3
    Membre confirmé
    Avatar de omiossec
    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2002
    Messages : 241
    Points : 563
    Points
    563
    Par défaut
    Pour la solution il faudrait utiliser l'utilitaire myisamchk pour reparer la table en question.
    Arreter le serveur, faite une sauvegarde des fichiers de données.
    executer myisamchk nom_de_la_table
    Olivier Miossec

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    C pas un problème de solution, je sais bien ce qu'il faut faire !...
    Ce qui m'intéresse c le pourquoi de ce message d'erreur ? Pourquoi arrive t-il à MySQL de corrompre le fichier d'index, assez régulièrement en plus ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Poulou
    C pas un problème de solution, je sais bien ce qu'il faut faire !...
    mais c'est agréable ça

    quel est ta plateforme? tu as eu un arrêt brutal de ta base?

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Mes plus plates excuses, ça n'avait pas pour but d'être désagréable

    Pour le problème, je suis sous Linux. Pas de pbs particulier mais dans le fichier de logs lors d'un INSERT qui plante j'ai le message : "Mysql error : Duplicate entry '5903252' for key". Je suis donc obligé de réparer la table mais un myisamcheck sur 1Go c long !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Tant que tu n'auras pas réparé, ça va persister voir même très probablement empirer.
    Tu risque une bonne corruption généralisée, et un fichier bon à jeter.

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Je répare le fichier mais ça revient régulièrement d'où mon problème... Je ne sais pas à quoi cela peut être du...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Le réflexe habituel c'est de passer à la dernière version de mysql, tu tourne avec laquelle?

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    3.23.40
    Yop il va falloir que je passe à la 51 mais je suis pas convaincu que ça puisse résoudre le problème au vu du changelogs entre ces 2 versions.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Tu insère tes données comment?

  12. #12
    Membre confirmé
    Avatar de omiossec
    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2002
    Messages : 241
    Points : 563
    Points
    563
    Par défaut
    Ok j'avais mal lu le message.
    Question sur le message d'erreur de tes log quel est le champs qui est en cause. Quel est son type d'indexation. Comment sont fait les index ?.
    Olivier Miossec

  13. #13
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    C un code C qui appelle ma requête SQL, j'ai donc un truc dans le genre mysql_query (&sql,query) dans mon code avec query un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO base (chmp1,...,chmp32) VALUES (valeur1,...,valeur32)
    donc ça me semble correct de ce côté là.

    Après au niveau des index, la table en contient énormément : 23 ! (c'est une application que je reprends donc c pas ma conception ! En fait à chaque fois qu'il y a une requête SELECT ils ont créé un index correspondant aux champs de la clause WHERE). Ils sont définis normalmeent par des KEY nomclé (nomchamp1,...,nomchamp3). Y'a t'il un autre moyen de "faire les index" comme dit omiossec ? Pour le message d'erreur "Mysql error : Duplicate entry '5903252' for key" je pense que c'est la clé primaire (un auto-incrément) qui est en cause.

    Voilà, merci pour vos réponses et votre intérêt pour mon problème

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 81
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    Désolé de faire remonter ce message mais je pense avoir un élément de réponse qui pourrait en aider certains, je le trouve bien aujourd'hui, peut-être qu'en 2010 quelqu'un nous lira .

    Plus sérieusement le problème ne vient pas forcément de MySQL mais peut venir du disque. Sur 1 Go de données quelques secteurs physiques du disque peuvent être endommagés. Le myisamchk se charge uniquement de vérifier et réparer les tables, il ne peut rien vers quand il y a un problème physique. Le mieux est alors d'utiliser un outil de vérification du disque, chaque secteur du disque est alors passé au crible. Les grands fabricants proposent généralement un tel outil, à lancer sous DOS quand rien ne peut venir perturber la vérification. C'est d'après moi le meilleur moyen pour être sûr d'une chose : mon disque n'est pas endommagé, les secteurs endommagés sont marqués comme tel sur la FAT et ne peuvent donc en aucun cas être utilisés par une application. Si de tels secteurs ne sont pas marqués comme endommagés, n'importe quelle application, comme MySQL par exemple, peut inscrire des données dessus, ces dernières sont valables quelques heures, peut-être quelques jours, mais on les perd forcément à un moment ou à un autre.

    Donc il y a 2 choses à vérifier :
    - L'intégrité de la base avec myisamchk
    - L'intégrité du disque avec l'outil du fabricant ou un outil professionnelle (mais je fais plus confiance aux outils des fabricants, gratuit et adapté pour la matériel à vérifier)

    Je parle en connaissance de causes car il m'est arrivé de perdre des disques durs. Une mauvaise série IBM, mais comme toute la série était mauvaise forcément on avait peut de chance de bien tomber, souvenez-vous ^^. Un disque dur tellement brûlant qu'il aurait pu faire fondre les glaciers du pôle nord, quoique un bon boîtier, surtout bien ventilé, c'est une meilleure santé pour votre matériel, tout particulièrement vos disque durs. Je recommande un boîtier type Textorm avec 2 ventilateurs, donc 1 spécialement pour le rack des disques durs.

    Rendez-vous en 2010 pour le prochain message,
    JM

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer un message Undefined index php
    Par marionbross dans le forum WordPress
    Réponses: 7
    Dernier message: 26/05/2014, 08h47
  2. message indefined index avec script upload photo
    Par monlou dans le forum Langage
    Réponses: 21
    Dernier message: 03/04/2010, 06h36
  3. Message d'erreur de Mysql "Duplicate entry '0' for key 1"
    Par Alexandrebox dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/02/2010, 16h54
  4. Invalid project path: Duplicate path entries
    Par Sphost dans le forum Eclipse
    Réponses: 1
    Dernier message: 07/07/2008, 16h25
  5. #1062 - Duplicate entry
    Par Spaccio dans le forum Débuter
    Réponses: 6
    Dernier message: 02/06/2004, 11h18

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