¿Cómo hacer una copia de seguridad de una sola tabla en una base de datos MySQL?

441

Por defecto, mysqldumptoma la copia de seguridad de una base de datos completa. Necesito hacer una copia de seguridad de una sola tabla en MySQL. ¿Es posible? ¿Cómo lo restauro?

Mandar Pande
fuente

Respuestas:

838

Volcar y restaurar una sola tabla desde .sql

Tugurio

mysqldump db_name table_name > table_name.sql

Volcado de una base de datos remota

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

Para mayor referencia:

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

Restaurar

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

o en una línea

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


Volcar y restaurar una sola tabla desde un formato comprimido (.sql.gz)

Crédito: John McGrath

Tugurio

mysqldump db_name table_name | gzip > table_name.sql.gz

Restaurar

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

revs Ozair Kafray
fuente
13
SQL generalmente se comprime bien: puede canalizar el comando anterior a través de gzip y el archivo resultante será mucho más pequeño: mysqldump db_name table_name | gzip > table_name.sql.gz para restaurar: gunzip < table_name.sql.gz | mysql -u username -p db_name
John McGrath
¿Qué sucede si desea incluir la contraseña en la línea de comando? Así que ya estás usando -pPASSWORD
Freedo
23

mysqldump puede tomar un parámetro tbl_name, de modo que solo respalde las tablas dadas.

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

tratar

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • tablas de nombres de $ line cotent;)
Robin Gomez
fuente
1
Esto es útil para volcar una base de datos en consultas de tabla separadas. ¿Puedo saber qué hacen exactamente las opciones?
xiankai
Hola, -AN (- no-auto-rehash, -A | --skip-column-names, -N No escriba nombres de columna en los resultados.) -E (- execute = instrucción, -e instrucción | Ejecute el declaración y dejar de fumar El formato de salida por defecto es como la producida con --batch) Fuente:.. dev.mysql.com/doc/refman/5.6/en/mysql-command-options.html
Robin Gómez
12

Podemos hacer un volcado de mysql de cualquier tabla en particular con cualquier condición dada como a continuación

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

Si queremos agregar una condición where específica en la tabla, entonces podemos usar el siguiente comando

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

Puede usar fácilmente para volcar las tablas seleccionadas usando MYSQLWorkbench tool, individualmente o en grupo de tablas en un solo volcado y luego importarlo de la siguiente manera: también puede agregar información de host si la está ejecutando en su local agregando -h IP.ADDRESS.NUMBER después de u nombre de usuario

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 
Daniel Adenew
fuente
Desafortunadamente MySQL Workbench tiene algunos problemas se escapan que pueden conducir a la exportación de datos no válidos, que no sirve para nada ...
BARELL
6

Puedes usar este código:

Este ejemplo toma una copia de seguridad de la base de datos sugarcrm y volca la salida a sugarcrm.sql

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

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

Sugarcrm.sql contendrá la tabla desplegable, creará la tabla e insertará el comando para todas las tablas en la base de datos sugarcrm. A continuación se muestra una salida parcial de sugarcrm.sql, que muestra la información de volcado de la tabla accounts_contacts:

-

- Estructura de mesa para mesa 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;

--
Linda Martin
fuente
5

Puedes usar el siguiente código:

  1. Para la estructura de tabla única solo Copia de seguridad

-

mysqldump -d <database name> <tablename> > <filename.sql>
  1. Para estructura de tabla única con datos

-

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

Espero que ayude.

Fénix
fuente
5

Puede usar mysqldumpdesde la línea de comandos:

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

También puede usar MySQL Workbench:

Vaya a la izquierda> Exportación de datos> Seleccionar esquema> Seleccionar tablas y haga clic en Exportar

SAM AB
fuente
solo una pequeña información, omita el espacio entre -p y contraseña -> -ppassword, pero es inseguro
Agung Sagita