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

Outils MySQL Discussion :

MySQL ne répond plus ...


Sujet :

Outils MySQL

  1. #1
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut MySQL ne répond plus ...
    Salut à tous

    MySQL ne répond plus même après un "reboot" du serveur !
    Lorsque je tape dans le shell "mysql" j'ai le message suivant :
    ERROR 2013 (HY000): Lost connection to MySQL server during query
    "/etc/init.d/mysqld restart , stop ou start" renvois "échec" et "mysqld status" renvois "en cours d'exécution"....

    Par contre quand je fais un "top" , les processus "mysqld_safe", "syslogd" , "klogd" et "mysqld" apparaissent en haut de la liste.

    J'ai ce problème depuis que j'ai demandé la création d'un index à partir phpMyAdmin.....

    comment puis je résoudre ce problème

    Merci

    mysql Ver 14.7 Distrib 4.1.12, for redhat-linux-gnu (i386) using readline 4.3
    -------------------
    Ickou

  2. #2
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    Que faire ? MySQL a l'air d'être mort !!!!

    Quelqu'un a t il déjà perdu MySQL ???

    que feriez vous à ma place ??
    -------------------
    Ickou

  3. #3
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    Kille les process qui tournent encore, relance MySQL et donne-nous les dernières lignes du log d'erreurs MySQL (host.err) si ça ne fonctionne pas.
    Pensez au bouton

  4. #4
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    il se situe où le fichier log de mysql ??
    -------------------
    Ickou

  5. #5
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    impossible de faire marcher mysql même après avoir killer les processus

    j'ai trouvé le fichier mysqld.log dans /var/log/

    voici ce que j'ai trouvé :
    Number of processes running now: 0
    060509 10:56:19 mysqld restarted
    060509 10:56:19 InnoDB: Started; log sequence number 0 43644
    060509 10:56:19 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)
    060509 10:56:19 [ERROR] Can't start server: can't create PID file: No space left on device
    -------------------
    Ickou

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    "No space left on device" : ton disque est plein !
    tape la commande "df" pour voir l'espace disque

  7. #7
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    Bien vu mathieu !

    ce matin j'avais déjà fait "df -h" mais apparement j'étais mal réveillé ......

    merci
    -------------------
    Ickou

  8. #8
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    Dans le répertoire de ma base j'ai un fichier "#sql-9c9_32.MYI" qui fait 30 Go !!

    C'est quoi ce fichier ????

    je pense que c'est ça qui m'avait remplit le disque.
    -------------------
    Ickou

  9. #9
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Citation Envoyé par Ickou
    J'ai se problème depuis que j'ai demandé la création d'un index à partir phpMyAdmin.....
    Il ne faut pas chercher plus loin... Quelle taille fait la table que tu cherchais à indexer ?
    Pensez au bouton

  10. #10
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    Ma table fait actuellement 48 Go pour 850 millions d'enregistrements.....
    La creation d'index est difficile sur cette table car souvent au bout de 2-3 jours MySQL plante .....

    Quelle est le meilleur moyen de gérer des grosses tables ???
    (en faire plein de petites et les réunir avec MERGE ??)

    Ce fichier de 30 GO (#sql-9c9_32.MYI) contient quoi ?(fichier temporaire pour l'index ?) je peux l'éffacer ?
    -------------------
    Ickou

  11. #11
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Il contient précisément les index de la table.

    Tu devrais rajouter de l'espace disque d'une manière ou d'une autre, et reconsidérer ton indexation.
    Peux-tu nous donner la structure de la table et ce que tu compte indexer ?
    Pensez au bouton

  12. #12
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    J'ai effacé plus de 50 Go de fichier commençant par "#sql" et ma base a pas bougé. Je pense que c'était des fichiers temporaires utilisés lors de la création d'index qui a planté (date de création coincidant avec ma création d'index .... )

    Ma table possède 5 attributs :
    + data (int) , name1 et name 2 (varchar 40), id1 et id2 (int) et value (decimal(4,3))
    +ma clef primaire --> triplet (data, name1 et name2 ) --> seul truc unique de la table
    + J'essais de mettre des index sur id1 et id2 qui sont au 9999/10000 égal à "null" car il y aura des update

    Je pense pas que la structure de ma base soit mauvaise car elle marchait bien avec 400 millions de valeurs .... le problème vient de la taille qui fait que grandir.... total final environ 1.3 milliards d'enregistrements .

    Je pense que je vais faire des tables de 400 millions car ça marchait bien avant.

    Les gens qui font de grosses bases font comment ?
    -------------------
    Ickou

  13. #13
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Il passent sous Oracle ou SQL Server (pourquoi je dis ça moi )

    30 Go d'index ça me paraissait beaucoup mais effectivement quasiment toutes les colonnes sont indexées... il n'y a pas moyen de s'en passer ?
    Pensez au bouton

  14. #14
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    Quand j'ai fait la première base avec 400 millions de valeurs , sans index l'interrogation était de 20 minutes minimum et après index le résultat était fait en quelque ms .....

    Les indexs sont indispensables.

    Ma table contient 25 Go de données , 16Go de clef primaire et 8 Go pour l'index sur id1.

    Je vais couper cette table en 2 pour être tranquille.

    Je te remercie.

    @ bientôt

    Ickou
    -------------------
    Ickou

  15. #15
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Je ne parlais bien sûr pas de supprimer tous les index mais si tu as la possiblité de redéfinir la clé primaire, utilise un identifiant numérique auto-incrémenté plutôt que le triplet (data, name1, name2).
    Si tu ne fais pas beaucoup de recherches sur data seul, name1 seul ou name2 seul ça permettra d'éviter de les indexer donc gain de place.

    Sinon avec MySQL 5.1 (encore en beta) il y a possibilité de partitionner les tables ce qui est très pratique pour de grandes bases. Peut-être à examiner pour le futur...
    Pensez au bouton

  16. #16
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Citation Envoyé par Maximilian
    Il passent sous Oracle ou SQL Server (pourquoi je dis ça moi )
    Pour notre logiciel, notre table principale contient une clef primaire sur trois champs en chaîne de caractères... (Varchar(4) ; Varchar(4) ; Varchar(35).

    Pour la base d'un grand compte, en Oracle (3 millions de lignes), j'ai mis deux jours à créer l'index...

    Sinon, après maintes et maintes remarques, j'ai conseillé à ma direction de nous donner le temps de reformaliser cette base mal construite. En clair je pensais juste à mettre une [auto-censure] de clefs primaires en en entier long... Devant les rejets, et conscients des heures supplémentaires que ces clefs créent dans la société, j'ai pété un cable. Je suis resté un soir, j'ai rajouté ce champ, j'ai remis les index, j'ai recodé le programme et j'ai chargé la base sur MySQL... Aucun problème ls temps de réponses explosent la base en Oracle* !

    En conclusion, je rejoins Maximilian, retravaille la structure de ta table avant toute chose.

    *N.B. : Attention je compare pas Oracle et MySQL. Je dis juste qu'une table bien construite en MySQL est plus rapide qu'une table pourrie en Oracle

    *N.B. : Pour la petite histoire, de mauvaises foi la direction m'a répondu que sur Oracle, il y a trois autres bases de données qui tournent et on a jeté aux oubliettes mon code
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  17. #17
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    Merci Maximilian car ce que tu m'as dit m'a fait réflechir
    Je voudrais savoir si c'est possible de suprimer totalement la clef primaire (triplet --> seul truc unique de la table) ? la clef primaire est obligatoire ? (je veux bien mettre un attribut auto incrementé mais ça me servera à rien ...)
    dans ce cas là j'indexerai "data".

    Je vais tester desuite avec un attribut autoincrementé.

    Une dernière question : C'est mieux de d'abord créer les index puis remplir la base (je remplis avec perl DBI) ou d'abord remplir puis faire les index ??
    -------------------
    Ickou

  18. #18
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE latable DROP PRIMARY KEY
    La clé primaire n'est pas obligatoire mais elle permet d'identifier une ligne de manière unique donc quand même très utile

    Si tu estimes que la colonne data remplit ce rôle pourquoi pas...
    Pensez au bouton

  19. #19
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Le must créer la table, les index, mettre les index en veille, insérer les données, réactiver les index.

    Sinon, insérer des données dans une table indexée est plus lent que dans une table sans index. Par contre l'insertion des index peut-être longue.

    Lequel des deux est plus rapide je ne sais pas. Par contre, je préfère savoir toute mes données rapidement dans la base et ensuite mettre les index, plutôt que de verrouiller longtemps la table et risqué un crash (coupure du service) pendant cette longue insertion.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  20. #20
    Membre régulier Avatar de Ickou
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 108
    Points
    108
    Par défaut
    merci à tout les deux
    -------------------
    Ickou

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

Discussions similaires

  1. serveur mysql ne répond plus
    Par robocop2776 dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/03/2007, 18h21
  2. MySQL ne répond plus
    Par debelius dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/10/2006, 15h10
  3. Programme ne répond plus.
    Par twizell dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 14/11/2005, 19h46
  4. [MySQL] Condition en plus d'un RIGHT JOIN
    Par psychomatt dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/08/2005, 09h18
  5. Le dataset.bof ne répond plus.
    Par fplanglois dans le forum Bases de données
    Réponses: 6
    Dernier message: 23/03/2004, 09h45

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