Ver Mensaje Individual
  #24 (permalink)  
Antiguo 15/08/2010, 08:50
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ayuda, error al cargar fichero.

Existe una posibilidad que no sé si la han abarcado, y puede darse si el usuario utilizado para acceder a la base no es el root, o bien no tiene los privilegios adecuados:
Cita:
Por razones de seguridad, al leer ficheros de texto localizados en el servidor, los ficheros deben residir en el directorio de la base de datos o ser legibles por todo el mundo. Además, para usar LOAD DATA INFILE en ficheros del servidor, debe tener el permiso FILE .
El detalle es que si estás intentando acceder a un servidor remoto y en ese servidor el usuario no tiene privilegios FILE no podrás acceder a un archivo. En el caso de hacerlo en un servidor local, el problema base es el mismo: privilegios FILE.

Ahora bien, el privilegio de tipo FILE es un privilegio de alto nivel que se debe otorgar en forma expresa. No sirve usar GRANT ALL PRIVILEGES TO..., porque FILE no está incluido en ... ALL...

Ten en cuenta otra cosa, en el caso de usar el root: El root, a pesar de ser el root, no suele poseer los privilegios CREATE ROUTINE y FILE en remoto. Sólo suelen ser locales.

Ver Cuestiones de seguridad con LOAD DATA.

Hay una posibilidad de no necesitarlo, y es:
Cita:
Usar LOCAL es un poco más lento que dejar al servidor acceder al fichero directamente, porque el contenido del fichero debe enviarse por la conexión desde el cliente al servidor . Por otra parte, no necesita el permiso FILE para cargar ficheros locales.
A esto hay que recordar:

Código MySQL:
Ver original
  1. LOAD DATA INFILE '/home/alexander/pet.txt'
  2. INTO TABLE pet
Esto usa una ruta absoluta del servidor. Si estás en remoto, no funcionará.

Código MySQL:
Ver original
  1. LOAD DATA LOCAL INFILE '/home/alexander/pet.txt'
  2. INTO TABLE pet
Esto funciona si el servidor es remoto y " '/home/alexander/pet.txt' " se refiere a tu PC.

Código MySQL:
Ver original 
Esto funciona si el servidor es remoto y sólo si el archivo se encuentra en la misma carpeta de la base de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)