Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2006, 23h57   #1
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
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 :
Citation:
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 09h59   #2
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
Que faire ? MySQL a l'air d'être mort !!!!

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

que feriez vous à ma place ??
Ickou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 10h13   #3
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
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
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 10h32   #4
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
il se situe où le fichier log de mysql ??
Ickou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 11h06   #5
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
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é :
Citation:
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 12h52   #6
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
"No space left on device" : ton disque est plein !
tape la commande "df" pour voir l'espace disque
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 13h35   #7
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
Bien vu mathieu !

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

merci
Ickou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 14h56   #8
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 15h14   #9
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
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
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 15h50   #10
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 16h56   #11
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
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
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h16   #12
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h21   #13
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
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
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h28   #14
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 17h52   #15
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
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
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 22h26   #16
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 121
Points : 1 121
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 T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2006, 17h44   #17
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2006, 17h50   #18
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Code :
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
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2006, 17h53   #19
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 121
Points : 1 121
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 T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2006, 18h01   #20
Membre régulier
 
Avatar de Ickou
 
Inscription : avril 2005
Messages : 174
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 174
Points : 78
Points : 78
merci à tout les deux
Ickou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h47.


 
 
 
 
Partenaires

Hébergement Web