G
Guest
Invité
Bonjour,
Tout d'abord, désolé si je ne poste pas au bon endroit.
Je demande votre assistance pour du backup de base de donnée.
Je ne suis pas informaticien, mais pendant mon temps libre, j'essaie d'apprendre certaines choses qui pourraient me servir.
Là, je suis sur mysql sur une plate forme linux.
Ca fait déjà 2 ou 3 fois que suite à une erreur de manipulation, je perds toutes mes bases de données. je dois chaque fois tout recommencer. :/ Je perds donc du temps dans mon apprentissage.
J'essaie donc d'écrire un script que je mettrai dans un cron pour sauvegarder toutes mes tables.
Le hic, c'est que la commande show affiche le titre de la colonne et bien que le script fonctionne, j'ai un message d'erreur.
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Database' at line 1
mysqldump: Couldn't find table: "Tables_in_mysql"
mysqldump: Couldn't find table: "Tables_in_postfix"
J'ai essayé en ajoutant le switch --skip-column-names dans la commande show, mais ça me retourne une erreur sql et ça ne fonctionne plus du tout. :/
Toute aide sera la bienvenue.
merci d'avance.
Tout d'abord, désolé si je ne poste pas au bon endroit.
Je demande votre assistance pour du backup de base de donnée.
Je ne suis pas informaticien, mais pendant mon temps libre, j'essaie d'apprendre certaines choses qui pourraient me servir.
Là, je suis sur mysql sur une plate forme linux.
Ca fait déjà 2 ou 3 fois que suite à une erreur de manipulation, je perds toutes mes bases de données. je dois chaque fois tout recommencer. :/ Je perds donc du temps dans mon apprentissage.
J'essaie donc d'écrire un script que je mettrai dans un cron pour sauvegarder toutes mes tables.
Code:
#!/bin/bash
BASES_SQL=`mysql -u root -e "show databases"` #On commence par lister les bases de donnees
for i in $BASES_SQL; #on fait un boucle sur le resultat obtenu
do
if ! [ -d /root/$i ]; then #verification de la presence du repertoire et s'il n'existe pas on le cree
mkdir /root/$i
fi
TABLES_SQL=`mysql -u root -e "show tables from $i"` #pour chaque base de donnees, on extrait les tables
for b in $TABLES_SQL;
do
mysqldump -u root $i $b >"/root/$i/$b.sql" #backup les tables individuellement
done
done
Le hic, c'est que la commande show affiche le titre de la colonne et bien que le script fonctionne, j'ai un message d'erreur.
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Database' at line 1
mysqldump: Couldn't find table: "Tables_in_mysql"
mysqldump: Couldn't find table: "Tables_in_postfix"
J'ai essayé en ajoutant le switch --skip-column-names dans la commande show, mais ça me retourne une erreur sql et ça ne fonctionne plus du tout. :/
Toute aide sera la bienvenue.
merci d'avance.