sql >> Base de Datos >  >> RDS >> Mysql

MySQL importa la base de datos pero ignora la tabla específica

¡La respuesta aceptada por RandomSeed podría llevar mucho tiempo! Importar la tabla (solo para soltarla más tarde) podría ser un desperdicio dependiendo del tamaño.

Para un archivo creado usando

mysqldump -u user -ppasswd --opt --routines DBname > DBdump.sql

Actualmente obtengo un archivo de aproximadamente 7 GB, 6 GB de los cuales son datos para una tabla de registro que no "necesito" estar allí; recargar este archivo toma un par de horas. Si necesito volver a cargar (para fines de desarrollo, o si alguna vez se requiere para una recuperación en vivo), hojeo el archivo de la siguiente manera:

sed '/INSERT INTO `TABLE_TO_SKIP`/d' DBdump.sql > reduced.sql

Y recargar con:

mysql -u user -ppasswd DBname < reduced.sql

Esto me da una base de datos completa, con la tabla "no deseada" creada pero vacía. Si realmente no quiere las mesas, simplemente suelte las mesas vacías después de que finalice la carga.

Para varias tablas, podría hacer algo como esto:

sed '/INSERT INTO `TABLE1_TO_SKIP`/d' DBdump.sql | \
sed '/INSERT INTO `TABLE2_TO_SKIP`/d' | \
sed '/INSERT INTO `TABLE3_TO_SKIP`/d' > reduced.sql

HAY un 'gotcha':tenga cuidado con los procedimientos en su volcado que pueden contener "INSERT INTO TABLE_TO_SKIP".