¿Puedo restaurar una sola tabla desde un archivo mysqldump completo de mysql?

Resuelto Mobius asked hace 15 años • 20 respuestas

Tengo una copia de seguridad mysqldump de mi base de datos mysql que consta de todas nuestras tablas y tiene aproximadamente 440 megas. Quiero restaurar el contenido de solo una de las tablas de mysqldump. es posible? En teoría, podría simplemente recortar la sección que reconstruye la tabla que quiero, pero ni siquiera sé cómo editar de manera efectiva un documento de texto de ese tamaño.

Mobius avatar Jun 18 '09 23:06 Mobius
Aceptado

Puede intentar utilizar sed para extraer solo la tabla que desee.

Digamos que el nombre de su tabla es mytabley el archivo mysql.dumpes el archivo que contiene su enorme volcado:

$ sed -n -e '/CREATE TABLE.*`mytable`/,/Table structure for table/p' mysql.dump > mytable.dump

Esto copiará en el archivo mytable.dumplo que se encuentra entre CREATE TABLE mytabley el siguiente CREATE TABLEcorrespondiente a la siguiente tabla.

Luego puede ajustar el archivo mytable.dumpque contiene la estructura de la tabla mytabley los datos (una lista de INSERT).

uloBasEI avatar Jun 18 '2009 17:06 uloBasEI

Utilicé una versión modificada del comando sed de uloBasEI. Incluye el comando DROP anterior y lee hasta que mysql termina de descargar datos en su tabla (UNLOCK). Me funcionó (re)importar wp_users a varios sitios de Wordpress.

sed -n -e '/DROP TABLE.*`mytable`/,/UNLOCK TABLES/p' mydump.sql > tabledump.sql
bryn avatar Apr 07 '2013 01:04 bryn