Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Error al ejecutar LOAD DATA INFILE

Estas en el tema de Error al ejecutar LOAD DATA INFILE en el foro de Mysql en Foros del Web. Saludos y antes de nada muchas gracias por vuestra ayuda... Le he dado muchas vueltas al tema, pero no he conseguido una solución, así que ...
  #1 (permalink)  
Antiguo 05/11/2013, 04:44
 
Fecha de Ingreso: abril-2009
Ubicación: Vitoria
Mensajes: 160
Antigüedad: 14 años, 11 meses
Puntos: 1
Pregunta Error al ejecutar LOAD DATA INFILE

Saludos y antes de nada muchas gracias por vuestra ayuda...

Le he dado muchas vueltas al tema, pero no he conseguido una solución, así que espero que puedan echarme una mano.

Para realizar una carga de datos de forma masiva en varias tablas de una base de datos, ejecuto la función LOAD DATA INFILE desde un script en PHP.
Esto me muestra un Error 13 : Can't get stat of 'ruta/fichero.txt' (Errcode: 13)

Según tengo entendido, se trata de un error de privilegios que puede afectar o a las carpetas y archivo o al usuario de MySql con el que se está ejecutando.

Los privilegios de la carpeta httpdocs son 774 y por debajo de esta y a la ruta donde está el fichero.txt estan puestos a 777 incluido el archivo.

La versión de MySql es la 5.1.69 y el usuario que utilizo tiene todos los privilegios posibles...

También he leido por ahí que podría estar afectando la configuración de SELinux, pero lo tengo desactivado.

Lo curioso es que este proceso me ha estado funcionando correctamente hasta hace un par de semanas.
No me dí cuenta al instante, pero parece ser que se ha visto afectado por una actualización de Parallels Plesk...
La maquina corre bajo CentOS 6.4.

... ya no se que más probar.
Lo he intentado utilizando nuevas carpetas donde alojar el fichero.txt, utilizando el usuario admin de base de datos...

También he probado cargar el archivo a través de HeidiSQL. Y en este caso, si ha llegado a cargarse... utilizando el mismo usuario de base de datos, pero en vez de creado para localhost, creado especificamente para la IP desde la que me conecto.

Por lo tanto, tiene que ser un problema de privilegios sobre el archivo, la ruta, o similar, pero no entiendo por que antes si fucionaba y ahora no.
__________________
Lets Rock!
  #2 (permalink)  
Antiguo 05/11/2013, 09:40
 
Fecha de Ingreso: abril-2009
Ubicación: Vitoria
Mensajes: 160
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Error al ejecutar LOAD DATA INFILE

Hola de nuevo,

Después de muchas vueltas he conseguido solucionarlo...

Al final he modificado la sentencia y he utilizado LOAD DATA LOCAL INFILE que se supone que sería la utilizada para la lectura "externa" de datos. Aunque no entendía muy bien que se refería por externa, me imaginaba que sería externa al propio servidor, pero parece que también lo tiene en cuenta dentro de distintos espacios del mismo server.

Aquí esta la documentación de dev.mysql sobre la sentencia:
http://dev.mysql.com/doc/refman/5.1/en/load-data.html

Para poder utilizar esta sentencia en la versión de MySQL del server he tenido que acceder al archivo /etc/my.cnf y modificar la línea local-infile a 1.

Reiniciar el servicio mysqld con un poco de fortuna ha funcionado.

Espero que esto le ayude a alguien en algún momento.

Gracias a todos por vuestra atención, saludos!
__________________
Lets Rock!

Etiquetas: data, infile, linux, load, privilegios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:11.