533 votes

Comment sauvegarder une seule table dans une base de données MySQL ?

Par défaut, mysqldump prend la sauvegarde d'une base de données entière. J'ai besoin de sauvegarder une seule table dans MySQL. Est-ce possible ? Comment puis-je la restaurer ?

987voto

Ozair Kafray Points 7445

Vider et restaurer une table unique à partir d'un fichier .sql

Décharge

mysqldump db_name table_name > table_name.sql

Extraction d'une base de données distante

mysqldump -u <db_username> -h <db_host> -p db_name table_name > table_name.sql

Pour plus d'informations :

http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html

Restaurer

mysql -u <user_name> -p db_name
mysql> source <full_path>/table_name.sql

ou en une seule ligne

mysql -u username -p db_name < /path/to/table_name.sql


Vider et restaurer une table unique à partir d'un format compressé (.sql.gz)

Crédit : John McGrath

Décharge

mysqldump db_name table_name | gzip > table_name.sql.gz

Restaurer

gunzip < table_name.sql.gz | mysql -u username -p db_name

20 votes

SQL se compresse généralement bien - vous pouvez faire passer la commande ci-dessus par gzip et le fichier résultant sera beaucoup plus petit : mysqldump db_name table_name | gzip > table_name.sql.gz à restaurer : gunzip < table_name.sql.gz | mysql -u username -p db_name

0 votes

Que faire si l'on veut inclure le mot de passe dans la ligne de commande ? Vous utilisez donc déjà -pPASSWORD

1 votes

Mysqldump --where='where_condition', -w 'where_condition' Dump only rows selected by the given WHERE condition.

31voto

Jacob Points 17521

mysqldump peut prendre un paramètre tbl_name, afin de ne sauvegarder que les tables données.

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql

16voto

robin.gomez Points 63

Essayer

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • Les tableaux de noms de ligne cotent ;)

1 votes

C'est pratique pour extraire une base de données en requêtes de tables séparées - puis-je savoir ce que font exactement les options ?

1 votes

Bonjour, -AN(--no-auto-rehash, -A | --skip-column-names, -N Ne pas écrire les noms des colonnes dans les résultats). -e(--execute=statement, -e | Exécuter l'instruction et quitter. Le format de sortie par défaut est le même que celui produit avec --batch.) fuente : dev.mysql.com/doc/refman/5.6/fr/mysql-command-options.html

13voto

minhas23 Points 365

Nous pouvons obtenir un dump mysql de n'importe quelle table particulière avec n'importe quelle condition donnée comme ci-dessous

mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables

Si nous voulons ajouter une condition where spécifique à une table, nous pouvons utiliser la commande suivante

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables

8voto

danielad Points 1572

Vous pouvez facilement vidanger les tables sélectionnées en utilisant MYSQLWorkbench tool individuellement ou un groupe de tables en une seule fois, puis l'importer comme suit : vous pouvez également ajouter informations sur l'hôte si vous l'exécutez dans votre local en ajoutant -h NUMÉRO D'ADRESSE IP après-u nom d'utilisateur

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql

0 votes

Malheureusement, Mysql Workbench a des problèmes d'échappement qui peuvent conduire à l'exportation de données invalides, ce qui est inutile...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X