Errores con load data infile en mysql

Hoy he tenido que utilizar este comando para importar un simple archivo csv del estilo:

campo1;campo2\r\n

Todo sería muy sencillo si este comando no fuera tan flexible y a la vez complicado de utilizar. Lo primero que me pasó fue el ERROR 1045: Access denied for user: 'x@%' (Using password: YES), esto e sun problema de permisos del usuario en cues´tión, para ahorrar tiempo cambie el usuario y puse el root y solucionado, si alguien sabe el permiso específico por favor que lo ponga.

Otro problema es la ruta del archivo que debe ser absoluta porque sino mysql toma por defecto el directorio de instalación de mysql, por ejemplo si pones ../import/file.csv en interpreta que está en c:\wamp\bin\mysql\mysql5.1.34\import\file.csv siendo c:\wamp\bin\mysql\mysql5.1.34\ la ruta de mi instalación de mysql y nos daría un error del tipo:

29: File 'c:\wamp\bin\mysql\mysql5.1.34\import\idiomas.csv' not found (Errcode: 2)

En caso de que estés sobre Windows y lo hagas desde un script en php debes escribirlo de la siguiente manera:

C:\\\\wamp\\\\www\\\\fox\\\\import\\\\idiomas.csv –> con 4 \, 2 para php y 2 para mysql.

En caso de Mysql Query Browser solo debes utilizar 2 \.

Otro error al importar era poner en las columnas que quería los datos y e sque los nombres de las columnas van después que las definiciones, o sea de la siguiente manera:

LOAD DATA INFILE 'C:\\\\wamp\\\\www\\\\fox\\\\import\\\\idiomas.csv'

INTO TABLE idioma

FIELDS TERMINATED BY ';'

LINES TERMINATED BY '\r\n'

(siglas,idioma);

Para terminar y si quieres ignorar los errores del proceso (no recomendado la primera vez) puedes colocar la palabra IGNORE justo delante de INTO TABLE.

¿Os ha dado algún otro error el comando load data infile?

Comentarios