Sauvegarde et restauration de bases mysql
Résolu/Fermé
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
-
17 oct. 2008 à 10:49
Dikmas Messages postés 376 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 3 mai 2012 - 17 oct. 2008 à 16:22
Dikmas Messages postés 376 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 3 mai 2012 - 17 oct. 2008 à 16:22
A voir également:
- Sauvegarde et restauration de bases mysql
- Restauration systeme - Guide
- Logiciel de sauvegarde gratuit - Guide
- Restaurer sauvegarde google - Guide
- Restauration pc - Guide
- Sauvegarde facile - Télécharger - Sauvegarde
21 réponses
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
17 oct. 2008 à 11:03
17 oct. 2008 à 11:03
Bonjour,
Pourquoi utilises-tu -B ici :
D:\mysql\bin\mysqldump -u root -proot -B menagerie > %FICHIER%;
Pourquoi utilises-tu -B ici :
D:\mysql\bin\mysqldump -u root -proot -B menagerie > %FICHIER%;
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
17 oct. 2008 à 11:29
17 oct. 2008 à 11:29
D:\mysql\bin\mysqldump -u root -p"root" menagerie > %FICHIER%;
Si cela ne fonctionne pas, es-tu certain que ta base s'appelle menagerie ?
Si cela ne fonctionne pas, es-tu certain que ta base s'appelle menagerie ?
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 11:32
17 oct. 2008 à 11:32
Alors, lorsque je met
D:\mysql\bin\mysqldump -u root -p"root" menagerie > %FICHIER%;
donc sans le -B j'ai droit au message :
mysqldump: Couldn't find table ';'
et la sauvegarde ne se fait pas.
D:\mysql\bin\mysqldump -u root -p"root" menagerie > %FICHIER%;
donc sans le -B j'ai droit au message :
mysqldump: Couldn't find table ';'
et la sauvegarde ne se fait pas.
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
17 oct. 2008 à 11:36
17 oct. 2008 à 11:36
Je sais que ma question est conne, mais es-tu sur du nom exact de ta base ?
c'est menagerie, pas ménagerie ou Menagerie..
c'est menagerie, pas ménagerie ou Menagerie..
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 12:28
17 oct. 2008 à 12:28
oui je suis sûr du nom de ma base. j'ai vérifié plusieurs fois et j'ai bien fait attention de ne pas mettre d'accent ni majuscule.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
17 oct. 2008 à 12:53
17 oct. 2008 à 12:53
j'avais pas vu le point virgule a la fin de cette commande:
D:\mysql\bin\mysqldump -u root -p"root" menagerie > %FICHIER%;
il faut l'enlever.
D:\mysql\bin\mysqldump -u root -p"root" menagerie > %FICHIER%;
il faut l'enlever.
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 13:01
17 oct. 2008 à 13:01
super merci.
j'ai aussi enlevé le point virgule dans la commande :
mysql -u root -proot -D menagerie < D:\backupmysql\menagerie\Sauvegarde_de_menagerie_du_17_10_2008_A_10_29.sql
je n'ai plus de message d'erreur mais la restauration ne se fait pas. En effet, la table "animal" n'apparait pas dans la base "menagerie"
edit : en fait c'est bon, ça marche même pour la restauration. Merci bien.
j'ai aussi enlevé le point virgule dans la commande :
mysql -u root -proot -D menagerie < D:\backupmysql\menagerie\Sauvegarde_de_menagerie_du_17_10_2008_A_10_29.sql
je n'ai plus de message d'erreur mais la restauration ne se fait pas. En effet, la table "animal" n'apparait pas dans la base "menagerie"
edit : en fait c'est bon, ça marche même pour la restauration. Merci bien.
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 13:44
17 oct. 2008 à 13:44
Je reviens sur ce sujet car j'ai une autre question en rapport.
j'aimerais afficher un texte du genre :
"La sauvegarde s'est effectuee correctement" si il n'y a aps eu d'erreur durant l'exécution de la commande
"La sauvegarde a echouee" si il y a eu une erreur lors de l'exécution de la commande.
Afficher le texte, je sais le faire. par contre, je ne sais pas rentrer la condition. Je pense à IF, mais je ne sais pas quoi mettre derrière.
merci d'avance
j'aimerais afficher un texte du genre :
"La sauvegarde s'est effectuee correctement" si il n'y a aps eu d'erreur durant l'exécution de la commande
"La sauvegarde a echouee" si il y a eu une erreur lors de l'exécution de la commande.
Afficher le texte, je sais le faire. par contre, je ne sais pas rentrer la condition. Je pense à IF, mais je ne sais pas quoi mettre derrière.
merci d'avance
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
17 oct. 2008 à 14:00
17 oct. 2008 à 14:00
tu peux essayer un truc comme ca:
@mysql -u root -proot -D menagerie < D:\backupmysql\menagerie\Sauvegarde_de_menagerie_du_17_10_2008_A_10_29.sql
@if %ERRORLEVEL% EQU 0 echo Reussi
@if %ERRORLEVEL% EQU 2 echo Echec
@mysql -u root -proot -D menagerie < D:\backupmysql\menagerie\Sauvegarde_de_menagerie_du_17_10_2008_A_10_29.sql
@if %ERRORLEVEL% EQU 0 echo Reussi
@if %ERRORLEVEL% EQU 2 echo Echec
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 14:17
17 oct. 2008 à 14:17
j'ai rajouté :
@if %ERRORLEVEL% EQU 0 echo Reussi
@if %ERRORLEVEL% EQU 2 echo Echec
Dans le BAT de ma sauvegarde. lorsqu'il n'y a pas d'erreur, le message "reussi" apparait.
En revanche, lorsque je créé une erreur ("mysqldump: Couldn't find table ';' " par exemple), le message "echec" n'apparait pas, "reussi" non plus.
EDIT : il ne détecte pas l'erreur. je lui ai demandé d'enregistrer dans un fichier log.txt le résultat de IF avec la commande
SET REUSSI=Sauvegarde reussi
SET ECHEC=Sauvegarde echouee
@if %ERRORLEVEL% EQU 0 echo %REUSSI% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
@if %ERRORLEVEL% EQU 2 echo %ECHEC% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
Il écrit bien lorsque la sauvegarde réussi, mais il écrit rien du tout lorsqu'il me marque une erreur dans l'invite de commande.
@if %ERRORLEVEL% EQU 0 echo Reussi
@if %ERRORLEVEL% EQU 2 echo Echec
Dans le BAT de ma sauvegarde. lorsqu'il n'y a pas d'erreur, le message "reussi" apparait.
En revanche, lorsque je créé une erreur ("mysqldump: Couldn't find table ';' " par exemple), le message "echec" n'apparait pas, "reussi" non plus.
EDIT : il ne détecte pas l'erreur. je lui ai demandé d'enregistrer dans un fichier log.txt le résultat de IF avec la commande
SET REUSSI=Sauvegarde reussi
SET ECHEC=Sauvegarde echouee
@if %ERRORLEVEL% EQU 0 echo %REUSSI% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
@if %ERRORLEVEL% EQU 2 echo %ECHEC% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
Il écrit bien lorsque la sauvegarde réussi, mais il écrit rien du tout lorsqu'il me marque une erreur dans l'invite de commande.
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
17 oct. 2008 à 14:35
17 oct. 2008 à 14:35
C'est normal, il y a plusieurs types d'erreur possibles.
Je ne l'ai connais pas toutes.
si tu veux connaitre l'erreur qu'il te retourne, tu fais echo %ERREURLEVEL% avant les IF
Pour une erreur de table qu'il ne trouve pas, je crois que c'est 6
Donc ca te donne:
@if %ERRORLEVEL% EQU 0 echo Reussi
@if %ERRORLEVEL% EQU 2 echo Echec
@if %ERRORLEVEL% EQU 6 echo Table inconnue
ou tu peux faire ca :
@if %ERRORLEVEL% EQU 0 echo Reussi
@if %ERRORLEVEL% GEQ 1 echo Echec
Je ne l'ai connais pas toutes.
si tu veux connaitre l'erreur qu'il te retourne, tu fais echo %ERREURLEVEL% avant les IF
Pour une erreur de table qu'il ne trouve pas, je crois que c'est 6
Donc ca te donne:
@if %ERRORLEVEL% EQU 0 echo Reussi
@if %ERRORLEVEL% EQU 2 echo Echec
@if %ERRORLEVEL% EQU 6 echo Table inconnue
ou tu peux faire ca :
@if %ERRORLEVEL% EQU 0 echo Reussi
@if %ERRORLEVEL% GEQ 1 echo Echec
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 14:49
17 oct. 2008 à 14:49
Je viens de voir un autre problème.
Si je met un mauvais nom d'utilisateur ou un mauvais mot de passe pour me connecter à la base mysql, j'ai une erreur sur l'invite de commande, mais dans mon fichier log il me dit que la sauvegarde a réussie.
J'ai mis cette ligne en cas d'échec de la sauvegarde :
@if %ERRORLEVEL% GEQ 1 echo %ECHEC% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
Si je met un mauvais nom d'utilisateur ou un mauvais mot de passe pour me connecter à la base mysql, j'ai une erreur sur l'invite de commande, mais dans mon fichier log il me dit que la sauvegarde a réussie.
J'ai mis cette ligne en cas d'échec de la sauvegarde :
@if %ERRORLEVEL% GEQ 1 echo %ECHEC% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
17 oct. 2008 à 15:02
17 oct. 2008 à 15:02
a quoi correspond %ECHEC% ?
pas à la sauvegarde a réussie j'espere ? ;-)
pas à la sauvegarde a réussie j'espere ? ;-)
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 15:04
17 oct. 2008 à 15:04
lol non quand même
voici mes deux variables
SET REUSSI=Sauvegarde reussi
SET ECHEC=Sauvegarde echouee
voici mes deux variables
SET REUSSI=Sauvegarde reussi
SET ECHEC=Sauvegarde echouee
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
17 oct. 2008 à 15:31
17 oct. 2008 à 15:31
Tout semble correct.
La commande est bonne.
Je viens de tester la meme chose chez moi et ca marche.
Donc ton erreur est ailleurs.
Tu peux mettre ton script en entier ?
La commande est bonne.
Je viens de tester la meme chose chez moi et ca marche.
Donc ton erreur est ailleurs.
Tu peux mettre ton script en entier ?
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 15:32
17 oct. 2008 à 15:32
Voila mon script
SET JOUR=%date:~-10,2%
SET ANNEE=%date:~-4%
SET MOIS=%date:~-7,2%
SET HEURE=%time:~0,2%
SET MINUTE=%time:~3,2%
SET SECOND=%time:~-5,2%
IF "%time:~0,1%"==" " SET HEURE=0%HEURE:~1,1%
SET REPERTOIR=D:\backupmysql\menagerie\
SET REPERTOIR1=D:\backupmysql\mysql\
SET FICHIER=%REPERTOIR%\menagerie_du_%JOUR%_%MOIS%_%ANNEE%_A_%HEURE%_%MINUTE%.sql
SET FICHIER1=%REPERTOIR1%\mysql_du_%JOUR%_%MOIS%_%ANNEE%_A_%HEURE%_%MINUTE%.sql
IF NOT exist "%REPERTOIR%" md "%REPERTOIR%"
IF NOT exist "%REPERTOIR1%" md "%REPERTOIR1%"
D:\mysql\bin\mysqldump -u root -proot menagerie > %FICHIER%
D:\mysql\bin\mysqldump -u root -proot mysql > %FICHIER1%
SET REUSSI=Sauvegarde reussi
SET ECHEC=Sauvegarde echouee
@if %ERRORLEVEL% EQU 0 echo %REUSSI% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
@if %ERRORLEVEL% GEQ 1 echo %ECHEC% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
pause
SET JOUR=%date:~-10,2%
SET ANNEE=%date:~-4%
SET MOIS=%date:~-7,2%
SET HEURE=%time:~0,2%
SET MINUTE=%time:~3,2%
SET SECOND=%time:~-5,2%
IF "%time:~0,1%"==" " SET HEURE=0%HEURE:~1,1%
SET REPERTOIR=D:\backupmysql\menagerie\
SET REPERTOIR1=D:\backupmysql\mysql\
SET FICHIER=%REPERTOIR%\menagerie_du_%JOUR%_%MOIS%_%ANNEE%_A_%HEURE%_%MINUTE%.sql
SET FICHIER1=%REPERTOIR1%\mysql_du_%JOUR%_%MOIS%_%ANNEE%_A_%HEURE%_%MINUTE%.sql
IF NOT exist "%REPERTOIR%" md "%REPERTOIR%"
IF NOT exist "%REPERTOIR1%" md "%REPERTOIR1%"
D:\mysql\bin\mysqldump -u root -proot menagerie > %FICHIER%
D:\mysql\bin\mysqldump -u root -proot mysql > %FICHIER1%
SET REUSSI=Sauvegarde reussi
SET ECHEC=Sauvegarde echouee
@if %ERRORLEVEL% EQU 0 echo %REUSSI% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
@if %ERRORLEVEL% GEQ 1 echo %ECHEC% le %JOUR%-%MOIS%-%ANNEE% a %HEURE%H%MINUTE% >> D:\backupmysql\log.txt
pause
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 15:34
17 oct. 2008 à 15:34
oups. petite erreur :/
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
17 oct. 2008 à 15:48
17 oct. 2008 à 15:48
moi j'ai testé comme ca et ca fonctionne
@echo off
@set DATE_today=%DATE:~0,2%-%DATE:~3,2%-%DATE:~8,2%
@SET TIME_today=%TIME:~0,2%H%time:~3,2%
@SET REUSSI=Sauvegarde reussi
@SET ECHEC=Sauvegarde echouee
@mysqldump -u root --password="root" menagerie > "dump.sql"
@if %ERRORLEVEL% EQU 0 echo %REUSSI% le %DATE_today% a %TIME_today% > log.txt
@if %ERRORLEVEL% GEQ 1 echo %ECHEC% le %DATE_today% a %TIME_today% > log.txt
pause
@echo off
@set DATE_today=%DATE:~0,2%-%DATE:~3,2%-%DATE:~8,2%
@SET TIME_today=%TIME:~0,2%H%time:~3,2%
@SET REUSSI=Sauvegarde reussi
@SET ECHEC=Sauvegarde echouee
@mysqldump -u root --password="root" menagerie > "dump.sql"
@if %ERRORLEVEL% EQU 0 echo %REUSSI% le %DATE_today% a %TIME_today% > log.txt
@if %ERRORLEVEL% GEQ 1 echo %ECHEC% le %DATE_today% a %TIME_today% > log.txt
pause
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 16:09
17 oct. 2008 à 16:09
ça marche niquel. je vois pas bien où était l'erreur. Mais l'essentiel c'est que ça marche. merci beaucoup pour l'aide. Je vais pas abuser de ta gentillesse plus longtemps et passerait par quelqu'un d'autre pour poser mes questions. Sauf si ça te dérange pas ^^
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 16:22
17 oct. 2008 à 16:22
Merci de me le dire, c'est la première fois que je post sur ce forum, je ne savais pas.
Merci ^^
Merci ^^
Dikmas
Messages postés
376
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
3 mai 2012
63
17 oct. 2008 à 11:16
17 oct. 2008 à 11:16
Je met -B sinon, j'ai toujours la même erreur mais la sauvegarde ne se fait pas.