Encontramos el arreglo a este inconveniente, o por lo menos eso pensamos. Si tienes inquietudes coméntalo y con gusto te ayudaremos
Solución:
A veces, esto puede ocurrir debido a una combinación de una determinada secuencia de caracteres y el juego de caracteres del cliente MySQL en el momento de la importación.
Podría haber atrapado tales errores sin herramientas adicionales haciendo lo siguiente
mysql -u dbuser -p -f -D thedb < importfile.sql 2>errors_encountered.txt
Esto habría registrado sus puntos problemáticos en errors_encountered.txt
¿Qué se podría haber hecho con mysqldump para empezar?
SIMPLIFICAR LOS CONTENIDOS DE EXPORTACIÓN
Podría haber usado las opciones –hex-blob para convertir los caracteres en una representación hexadecimal. Esto podría haber aliviado cualquier mala interpretación o malentendido del conjunto de caracteres por parte del programa cliente MySQL.
VACIAR UNA FILA A LA VEZ
Incluso cuando se usa –force para el cliente MySQL, esto puede resultar en que no se inserten cientos o miles de filas. Por qué ?
De forma predeterminada, mysqldump tiene habilitado –opt. Esto establece lo siguiente
--opt Same as --add-drop-table, --add-locks, --create-options,
--quick, --extended-insert, --lock-tables, --set-charset,
and --disable-keys. Enabled by default, disable with
--skip-opt.
Observe que una de las opciones es –extended-insert. Esto hace que mysqldump configure inserciones en fragmentos de cientos o miles de filas a la vez.
Si solo una fila en una porción de filas tuvo un problema con la importación y está utilizando –force, la porción completa de filas no se inserta.
¿Cómo obtienes todas las partes buenas de un trozo? Para un mysqldump creado con –extended-insert, no hay una forma simple. ¿Qué puedes hacer cuando esto sucede? Tengo buenas noticias y malas noticias.
BUENAS NOTICIAS: Tienes que lanzar un nuevo mysqldump con --skip-extended-insert
. Eso obliga a mysqldump a crear un INSERT
por cada fila. De esa manera, al usar –force durante la importación, un valor no válido INSERT
debido a que las circunstancias no afectarán las filas circundantes.
MALAS NOTICIAS #1 : Esto hace que el archivo mysqldump resultante sea mucho más grande.
MALAS NOTICIAS #2 : La importación del archivo mysqldump resultante lleva mucho, mucho más tiempo.
Esto es algo que recomendé. Aug 09, 2013
(¡La copia de seguridad/exportación de datos de la tabla de archivos adjuntos de MySQL 5.5 sigue fallando!)
SUGERENCIA
Para anular el problema de tamaño que esto crea, puede hacer lo siguiente
gzip el mysqldump mientras hace mysqldump
nohup mysqldump ... | gzip > importfile.sql.gz &
descomprima mysqldump y canalícelo a mysql para importarlo
gzip -d < importfile.sql.gz | mysql -u dbuser -p -f -D thedb
DARLE UNA OPORTUNIDAD !!!
Comentarios y puntuaciones
Si estás contento con lo expuesto, puedes dejar una reseña acerca de qué te ha parecido este enunciado.