2010-06-22 5 views

Répondre

2

Vous pouvez vérifier le script shell suggéré dans l'article suivant:

Script:

#!/bin/bash 
db=$1 
if [ "$db" = "" ]; then 
echo "Usage: $0 db_name" 
exit 1 
fi 
mkdir $$ 
cd $$ 
clear 
for table in `mysql $db -e 'show tables' | egrep -v 'Tables_in_' `; do 
echo "Dumping $table" 
mysqldump --opt -Q $db $table > $table.sql 
done 
if [ "$table" = "" ]; then 
echo "No tables found in db: $db" 
fi 
+0

grâce, travail ,,, – mabuzer

0

Voici une ligne de commande Linux pour sauvegarder toutes les tables dans YOURDATABASENAME pour séparer les fichiers dans un chemin spécifique:

Vous devrez remplacer YOURDATABASENAME et YOURPATH par des valeurs appropriées. Je l'utilise comme travail cron planifié pour sauvegarder tous les tableaux quotidiennement.

REMARQUE: si vous utilisez ceci à partir d'une ligne de commande Linux, vous devrez ajouter un utilisateur avec des privilèges globaux à la base de données pour [email protected] sans mot de passe. Sinon, vous devrez ajouter les options utilisateur et mot de passe au script comme suit, mais cela nécessitera un mot de passe pour chaque table!

for I in $(mysql -u MYSQLUSERNAME -p --database=YOURDATABASENAME -e 'show tables' -s --skip-column-names); do mysqldump -u MYSQLUSERNAME -p YOURDATABASENAME $I | gzip > "/YOURPATH/YOURDATABASENAME/$I.sql.gz"; done 
Questions connexes