¿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?

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


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

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;)

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

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 

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;

--

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.


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


solo una pequeña información, omita el espacio entre -p y contraseña -> -ppassword, pero es inseguro
Agung Sagita
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.