2011-05-04 16 views
9

Estoy tratando de importar un archivo mysqldump a través de la línea de comando, pero sigo recibiendo un error. Me deshice el archivo de mi otro servidor usando:ERROR de Mysql en la línea 1153: comando desconocido ''

mysqldump -u XXX -p database_name > database.sql 

entonces trato de importar el archivo con:

mysql -u XXX -p database_name < database.sql 

Se carga una pequeña porción y luego se queda atascado. El error que recibo es:

ERROR at line 1153: Unknown command '\''. 

que comprueba esta línea en el archivo con:

awk '{ if (NR==1153) print $0 }' database.sql >> line1153.sql 

y pasa a ser más de 1 MB de tamaño, sólo por esa línea.

¿Alguna idea de lo que podría estar pasando aquí?

Respuesta

17

Tiene blobs binarios en su base de datos, intente agregar --hex-blob a su instrucción mysqldump.

+1

Esto funcionó! Muchas gracias. – Chris

+2

tengo el mismo problema pero --hex-blob no funciona. cualquier otra solución? thx – Jon

3

Usted sabe lo que está pasando - usted tiene una comilla simple adicional en su SQL O

Si tiene 'awk', es probable que tenga 'vi', que abrirá su archivo line1153.sql con facilidad y te permite encontrar el valor en tu base de datos que está causando el problema.

O ... La línea es probablemente grande porque contiene varias filas. También podría usar la opción --skip-extended-insert de mysqldump para que cada fila tenga una instrucción de inserción por separado.

Buena suerte.

2

Tuve el mismo problema porque tenía caracteres chinos en mi base de datos. A continuación se muestra lo que encontré en algún foro chino y funcionó para mí.

mysql -u[USERNAME] -p[PASSWORD] --default-character-set=latin1 
[DATABASE_NAME] < [BACKUP_SQL_FILE.sql] 
0

Si todo lo demás falla, utilice MySQLWorkbench para realizar la importación. Esto resolvió el mismo problema para mí.

1

creo que es necesario utilizar path/to/file.sql en lugar de path\to\file.sql

Además, database < path/to/file.sql no funcionó para mí por alguna razón - que tenía que utilizar use database; y source path/to/file.sql;.

+0

Las pruebas basadas en esta respuesta me confirman que esta fue la fuente de una serie de tales mensajes de error que surgieron cuando utilicé d: \ path \ to \ file.sql en una instalación de Windows de la CLI de MySQL, lo que me dejó perplejo. , ya que apareció incluso en un comando de salida, que establece una ruta de salida. Sospecho que lo mismo vale para cualquier ruta especificada en la CLI en una instalación de Windows. –

0

Recientemente tuve un problema similar cuando hice un volcado sql en una máquina Windows e intenté instalarlo en una máquina Linux. Había un archivo SQL bastante grande y mi error que ocurría en la línea 3455360. He utilizado el siguiente comando para copiar todo el texto hasta el punto en el que estaba recibiendo un error:

sed -n '1, 3455359p' < sourcefile.sql > destinationfile.sql

Esta copiado todo el código en buena un archivo de destino. Miré las últimas líneas del archivo de destino y vi que era un comando completo de SQL (la última línea terminaba con un ';') así que importé el código bueno y no obtuve ningún error.

Luego miré el resto del archivo que tenía unas 20 líneas.Resulta que la exportación no podría haber completado b/c vi el siguiente código PHP al final del código:

Array 
(
    [type] => 1 
    [message] => Maximum execution time of 300 seconds exceeded 
    [file] => C:\xampp\htdocs\openemr\phpmyadmin\libraries\Util.class.php 
    [line] => 296 
) 

Quité el código erróneo php y importaron el resto de la base de datos.

0

Tenía un carácter especial en los nombres de tablas, como _\ y da error cuando intento importar esas tablas. lo arreglé cambiando \ a \\ en dumping sql. mis nombres de tabla, donde al igual que rate_\ y yo usamos este comando para reparar volcado:

sed 's._\\._\\\\.g' dump.sql > dump2.sql 

i no reemplazó todas las barras invertidas, porque no estaba seguro de si hay algo de barra invertida en algún lugar de la base de datos que no debería estar reemplaza.

Los caracteres especiales en el nombre de la tabla se convertirán en @ al iniciar sesión en el nombre del archivo. leer http://dev.mysql.com/doc/refman/5.5/en/identifier-mapping.html

Cuestiones relacionadas