Précédent   Forum du club des développeurs et IT Pro > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 20/09/2012, 12h41   #1
IronQuake
Invité de passage
 
Inscription : mai 2009
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 3
Points : 0
Points : 0
Par défaut [Dump MYSQL] Erreur lors d'une sauvegarde de base de données.

Bonjour à tous,

Je rencontre depuis peu un problème lors de la sauvegarde d'une base de données MYSQL.
Pour se faire j'exécute la commande suivante sous console Windows:

=> mysqldump -uXXXX -pXXXX -lXXXX "Nom de base de donnée" > "G:\Dump\Pleiades.svg"

Au bout de quelques secondes, l'erreur suivante apparait.

"mysqldump: Error 2013: Lost connection to MYSQL server during query when
dumping table 'ptg_cpt_jour' at row: 35485'"

J'ai essayé de faire un "CHECK" de la table mais ça ne fonctionne pas non plus, j'ai une erreur 2013. Je n'ai pas osé faire un "REPAIR" de peur de casser la table et sans sauvegarde c'est relativement dangereux.

J'ai déjà essayé d'ajouter le paramètre suivant à mon fichier my.ini.

innodb_force_recovery = 4

De cette façon, ça fonctionne je peux faire ma sauvegarde et je peux aussi consulter ma table ptg_cpt_jour à l'aide de "Select * from ptg_cpt_jour" ou un "CHECK" par exemple.
Cependant, je ne peux plus écrire dans la base de données à l'aide de mes applications externes. (En l'occurrence une application WEB de pointages)

Trois solutions s'offrent à moi:

- Tenter un REPAIR de la table, mais je crains le pire avec cette solution.
- Supprimer la ligne qui pose problème. (Rows: 35485) Mais je doute de cette solution.
- Ou bien restaurer la base de donnée que j'ai réussi à recréer avec "innodb_force_recovery = 4 " et croiser les doigts pour que ça fonctionne.

Avez vous une idée? Un conseil ?

Merci.
IronQuake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 12h57   #2
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 : 13 659
Points : 25 563
Points : 25 563
Envoyer un message via MSN à CinePhil
35485 lignes, ce n'est pas beaucoup donc je ne pense pas que ce soit un problème de timeout.

Tu as regardé le contenu de cette ligne ?

Peux-tu faire un SELECT dessus ?

Si oui, tu peux tenter :
- création d'une table temporaire avec un select sur la ligne ;
- désactivation des clés étrangères ;
- suppression de la ligne ;
- insert de la table temporaire dans la vraie table (donc de l'ancienne ligne) ;
- réactivation des clés étrangères.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2012, 14h36   #3
IronQuake
Invité de passage
 
Inscription : mai 2009
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 3
Points : 0
Points : 0
Lorsque je fais un "Select * From ptg_cpt_jour", j'ai l'erreur suivante =>
Error 2013 (HY000): Lost connection to MySql server during query.

J'ai don essayé de faire "Select * From ptg_cpt_jour where OID=35485" mais ça ne fonctionne pas non plus, j'ai la même erreur.

Error 2013 (HY000): Lost connection to MySql server during query.

C'est identique avec n'importe quelle numéro de ligne.
Je ne peux donc même pas créer de table temporaire.
A moins peut être de repasser mon innodb_force_recovery à 4.

J'ai donc essayer avec le recovery à 4.
Et lorsque que je fais un select de ma ligne, j'ai le droit à un Empty set !
Cependant lorsque que je ne mets pas de condition, j'ai bien des données dans la table.

Du coup, je ne suis pas certains que la clé primaire soit le numéro de ligne, es t'il possible d'éxécuter une sélection SQL en fonction de la ligne ?
IronQuake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2012, 14h56   #4
IronQuake
Invité de passage
 
Inscription : mai 2009
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 3
Points : 0
Points : 0
Effectivement, la ligne n'est pas la clé primaire.
J'ai réussi a obtenir l'architecture de la table.
Au vu de mes premiers tests, impossible de sélectionner la ligne avant la 35485.
Impossible de la supprimé, j'ai la même erreur.
J'ai tenté la réparation de la table et j'ai une erreur similaire.
En gros, je ne peux rien faire sur cette table. (Index HS ?)
J'ai essayé de reconstruire l'index et c'est le même problème.
Une erreur est renvoyée.

Je vais devoir enregistré la table ptg_cpt_jour et l'enregistrer dans un .csv puis tenter de recréer la table avec le .csv, je ne vois plus que ça maintenant.
IronQuake est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h09.


 
 
 
 
Partenaires

Hébergement Web