Come eseguire il backup di una singola tabella in un database MySQL?


442

Per impostazione predefinita, mysqldumpesegue il backup di un intero database. Devo eseguire il backup di una singola tabella in MySQL. È possibile? Come lo ripristino?

Risposte:


838

Scarica e ripristina una singola tabella da .sql

cumulo di rifiuti

mysqldump db_name table_name > table_name.sql

Dumping da un database remoto

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

Per ulteriore riferimento:

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

Ristabilire

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

o in una riga

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


Scarica e ripristina una singola tabella da un formato compresso (.sql.gz)

Credito: John McGrath

cumulo di rifiuti

mysqldump db_name table_name | gzip > table_name.sql.gz

Ristabilire

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


14
SQL di solito si comprime bene - è possibile reindirizzare il comando sopra tramite gzip e il file risultante sarà molto più piccolo: mysqldump db_name table_name | gzip > table_name.sql.gz ripristinare: gunzip < table_name.sql.gz | mysql -u username -p db_name
John McGrath

Cosa succede se si desidera includere la password nella riga di comando? Quindi stai già usando -pPASSWORD
Freedo

24

mysqldump può accettare un parametro tbl_name, in modo che esegua il backup solo delle tabelle fornite.

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

15

provare

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • $ line tabelle dei nomi dei cotent;)

1
Questo è utile per scaricare un database in query di tabella separate - posso sapere esattamente cosa fanno le opzioni?
xiankai,

Ciao, -AN (- no-auto-rehash, -A | --skip-column-names, -N Non scrivere i nomi delle colonne nei risultati.) -E (- execute = statement, -e statement | Esegui il istruzione ed esci. Il formato di output predefinito è simile a quello prodotto con --batch.) fuente: dev.mysql.com/doc/refman/5.6/en/mysql-command-options.html
Robin Gomez

12

Possiamo prendere un dump mysql di qualsiasi tabella particolare con una data condizione come di seguito

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

Se vogliamo aggiungere una specifica condizione in cui sulla tabella, possiamo usare il seguente comando

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

8

È possibile utilizzare facilmente per eseguire il dump delle tabelle selezionate utilizzando MYSQLWorkbench tool, singolarmente o un gruppo di tabelle in un dump, quindi importarle come segue: inoltre è possibile aggiungere informazioni sull'host se le si esegue nel proprio locale aggiungendo -h IP.ADDRESS.NUMBER after-u nome utente

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 

Purtroppo Mysql Workbench ha alcuni problemi di fuga che possono portare all'esportazione di dati non validi che sono inutili ...
barell

6

Puoi usare questo codice:

In questo esempio viene eseguito un backup del database sugarcrm e viene scaricato l'output su sugarcrm.sql

# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql

# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

Sugarcrm.sql conterrà la tabella di rilascio, crea la tabella e inserisce il comando per tutte le tabelle nel database sugarcrm. Di seguito è riportato un output parziale di sugarcrm.sql, che mostra le informazioni sul dump della tabella conti_contatti:

-

- Struttura della tabella per la tabella accounts_contacts

DROP TABLE IF EXISTS `accounts_contacts`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `accounts_contacts` (
`id` varchar(36) NOT NULL,
`contact_id` varchar(36) default NULL,
`account_id` varchar(36) default NULL,
`date_modified` datetime default NULL,
`deleted` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `idx_account_contact` (`account_id`,`contact_id`),
KEY `idx_contid_del_accid` (`contact_id`,`deleted`,`account_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;

--

5

Puoi usare il codice qui sotto:

  1. Solo per il backup della struttura a tabella singola

-

mysqldump -d <database name> <tablename> > <filename.sql>
  1. Per struttura a tabella singola con dati

-

mysqldump <database name> <tablename> > <filename.sql>

Spero che possa essere d'aiuto.


5

Puoi usare mysqldumpdalla riga di comando:

mysqldump -u username -p password dbname tablename > "path where you want to dump"

Puoi anche usare MySQL Workbench:

Vai a sinistra> Esportazione dati> Seleziona schema> Seleziona tabelle e fai clic su Esporta


solo una piccola informazione, ometti lo spazio tra -p e password -> -password, ma è insicuro
Agung Sagita
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.