Comment est-ce que je peux vider chaque table dans la base de données dans le dossier séparé avec ce nom de table?Vider les tables de la base de données dans mysql?
Répondre
Vous pouvez vérifier le script shell suggéré dans l'article suivant:
- How do I dump all tables in a database into separate files? de Sunny Walia
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
grâce, travail ,,, – mabuzer
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
ont également un oeil à http://www.dagondesign.com/articles/automatic-mysql-backup-script/ – mosg