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

Ayuda, error al cargar fichero.

Estas en el tema de Ayuda, error al cargar fichero. en el foro de Mysql en Foros del Web. mysql> LOAD DATA LOCAL INFILE '/home/alexander/pet.txt' INTO TABLE pet; ERROR 2 (HY000): File '/home/alexander/pet.txt' not found (Errcode: 2) Tengo el fichero en esa direcclón y ...

  #1 (permalink)  
Antiguo 12/08/2010, 22:48
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Ayuda, error al cargar fichero.

mysql> LOAD DATA LOCAL INFILE '/home/alexander/pet.txt' INTO TABLE pet;
ERROR 2 (HY000): File '/home/alexander/pet.txt' not found (Errcode: 2)


Tengo el fichero en esa direcclón y no lo carga. Tengo instalado el paquete de apache2 de los repositorios de Ubuntu. Todo funciona bien, mi mysql funka ok.

Pregunto, ese error es de dirección solamente o también pasa si el ficheros (documento txt) están mal hechos??

Última edición por alex760125; 12/08/2010 a las 22:58
  #2 (permalink)  
Antiguo 13/08/2010, 10:25
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Hola.

prueba solo con:
LOAD DATA INFILE '/home/alexander/pet.txt' INTO TABLE pet;

sin el LOCAL

Suerte.
  #3 (permalink)  
Antiguo 13/08/2010, 17:59
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Hola lair gracias por responderme. Hice tu consejo pero

mysql> LOAD DATA INFILE '/home/alexander/pet.txt' INTO TABLE pet;
ERROR 13 (HY000): Can't get stat of '/home/alexander/pet.txt' (Errcode: 2)
Creo que resultó como me dices pero ahora no carga el archivo.

Mira te explico mejor, soy novato en esto, estudio por un manual de mysql5 que hasta el momento lo encuentro muy buenoo salvo que no es para principiantes y da por hecho algunas cosas. Por ejemplo, para subir información a la base de datos que tengo creada
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
que existe porque la veo en mi terminal... Me dice que cree un documento de texto pero no dice los detalles de cómo hacerlo, dice que escriba por línea todos los valores, hice lo siguiente
name alquinta, owner jeanette, especie gato, sex f, birth 1999-02-01, death \N pero no creo que esté bien. Cómo debe hacerse?
  #4 (permalink)  
Antiguo 13/08/2010, 19:08
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Hola.

mira mysql nos dice esto:
Cita:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]
lo que cabria destacar para lo que necesitas seria:
FIELDS
TERMINATED BY 'string'

LINES
TERMINATED BY 'string'


con esto lo que te dice es que cada campo va a estar delimitado por la cadena que coloques
FIELDS TERMINATED BY '\t' (para este caso tabulador)

y en ti archivo seria algo como
campo1 campo2 campo3
entre cada campo va un tabulador, SOLO UNO
y cada registro seria una linea indicando esto:
LINES TERMINATED BY '\n'

con lo que tu archivo quedaria asi:
Código Apache:
Ver original
  1. campo1    campo2    campo3     //Registro 1
  2. campo1    campo2    campo3     //Registro 2
  3. campo1    campo2    campo3     //Registro 3
  4. campo1    campo2    campo3     //Registro 4
  5. campo1    campo2    campo3     //Registro n

y tu instruccion seria algo como:

LOAD DATA INFILE '/home/alexander/pet.txt' INTO TABLE pet FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';

Suerte.
  #5 (permalink)  
Antiguo 13/08/2010, 20:51
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Muy buenos tus datos!!!
Bueno yo entendí que había que hacer el archivo pet.txt asi,

alquinta jeanette gato f 1999-02-01 \N n

Pero,

mysql> LOAD DATA INFILE '/home/alexander/pet.txt' INTO TABLE pet FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
ERROR 13 (HY000): Can't get stat of '/home/alexander/pet.txt' (Errcode: 2)



Sigue sin cargar los datos. Disculpa que moleste tanto, me ayudas!!!!!!
  #6 (permalink)  
Antiguo 13/08/2010, 21:09
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Cita:
Iniciado por alex760125 Ver Mensaje
alquinta jeanette gato f 1999-02-01 \N n
OK ya avanzamos un poquito mas.

primero entre cada campo o dato que valla en cada campo tebe ir un tabulador, es decir:
alquinta (tabulador) jeanette (tabulador).....

y NO es necesario que coloques el \N al final, puesto que ese \n es tu tecla de enter (salto de linea).

por lo que tu archivo debe quedar exactamente igual que el bloque que yo puse en la respuesta anterior (claro, solo que con tus datos), donde dice codigo apache y tu instruccion deberia de ser:

LOAD DATA INFILE '/home/alexander/pet.txt' INTO TABLE pet FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';

Suerte.


EDITO:

puedes hacer un
Código MySQL:
Ver original 
o
Código MySQL:
Ver original 
para saber que campos tienes y como deberia de estar el archivo que vas a cargar

espero respuesta

Última edición por lair; 13/08/2010 a las 21:17
  #7 (permalink)  
Antiguo 13/08/2010, 23:00
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Disculpa por hacerte esperar es que me ocuparon el PC

Te cuento que me sigue dando el mismo error
LOAD DATA INFILE '/home/alexander/pet.txt' INTO TABLE pet FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
ERROR 13 (HY000): Can't get stat of '/home/alexander/pet.txt' (Errcode: 2)


La \N es el NULL Igual la quité y me sigue dando error
Ahora puse
alquinta jeanette gato f 1999-02-01 \N Hay tabulador en los espacios...

Mi tabla:
DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |

Última edición por alex760125; 13/08/2010 a las 23:07
  #8 (permalink)  
Antiguo 13/08/2010, 23:29
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Pruba copiando y pegando esto en un archivo


Cita:
nombre,owner,species,sex,birth,death
nombre,owner,species,sex,birth,death
nombre,owner,species,sex,birth,death
nombre,owner,species,sex,birth,death
nombre,owner,species,sex,birth,death
nombre,owner,species,sex,birth,death
ejecuta la misma instruccion cambiando \t por , (coma) y deberia de funcionar
LOAD DATA INFILE '/home/alexander/pet.txt' INTO TABLE pet FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

NOTA: Vamos a cambiar los tabuladores por comas debido a que cuando copies de aqui colocara espacios y no tabuladores

Suerte.
  #9 (permalink)  
Antiguo 13/08/2010, 23:58
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

NADA


alquinta,jeanette,gato,f,1999-02-01,\N


LOAD DATA INFILE '/home/alexander/pet.txt' INTO TABLE pet FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
ERROR 13 (HY000): Can't get stat of '/home/alexander/pet.txt' (Errcode: 2)
  #10 (permalink)  
Antiguo 14/08/2010, 08:22
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Cita:
Iniciado por alex760125 Ver Mensaje
alquinta,jeanette,gato,f,1999-02-01,\N
NO le pongas nadamas al archivo, solo COPIA Y PEGA
quitale ese , \N que hay al final

Copia lo que yo puse donde dice cita:
  #11 (permalink)  
Antiguo 14/08/2010, 10:40
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Olvidé contarte que también lo hice y da justo el mismo error..
  #12 (permalink)  
Antiguo 14/08/2010, 13:02
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Ve esto, te ayudara a saber cual es el error.
http://dev.mysql.com/doc/refman/5.0/...ror-codes.html
  #13 (permalink)  
Antiguo 14/08/2010, 14:53
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Gracias por la página, la voy a leer...
Quería preguntarte algo, el software mysql puede buscar cualquier dirección dentro de mi PC o tengo que guardar los archivos que quiero subir (para actualizar) en una ubicación específica ??????
  #14 (permalink)  
Antiguo 14/08/2010, 15:42
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Ayuda, error al cargar fichero.

La dirección por default de trabajo del motor de MySQL es la carpeta /bin, por lo que para usar cualquier otra debes indicarlo en la misma cadena del archivo.
Ejemplo (suponiendo Windows):
Código MySQL:
Ver original
  1. LOAD DATA INFILE 'C:\\carpetadedato\\alexander\\pet.txt'
  2. INTO TABLE pet
En el caso de Linux lo que debes tener en cuenta es que debes tener permisos de lectura para esa carpeta o de lo contrario no podrá leer el archivo en cuestión, ya que la sentencia en realidad emite una petición al sistema operativo. MySQL no realiza operaciones de lectura/escritura por si mismo fuera de su propia estructura.
Esto implica que los mensajes de error que has estado teniendo bien pueden deberse a una falta de permisos del sistema, y no necesariamente a un error de sintaxis o de estructura del archivo.

Revisa ese punto.

Además, de eso, ¿has revisado si los nombres de archivo y/o carpetas están correctamente escritos en cuanto a mayúsculas/minúsculas? No olvides que Linux es sensible al CharacterCase.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 14/08/2010, 17:31
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Si, he revisado que todo esté bien escrito, de hecho lo que hago es copiar y pegar para evitar esos errores. Te cuento que tengo dos carpetas bin en mi Ubuntu, una en la carpeta personal y otra en archivos de programas, en la primera me dejó poner mi archivo pet.txt, no así en la segunda, debe ser por lo que me comentaste. Probé con esa dirección y nada, el mismo error...
Estuve viendo y no aparece el error que me da en la página que me enviaste, lo busco en google y no encuentro una respuesta clara..... Ya no sé qué hacer, estoy retrasado en el estudio por esto... Si se te ocurre algo más me dices... Estuve viendo una informaciòn que el problem puede ser el corta fuego SELinux Management
, ahora no encuentro otra info que me diga como desabilitarlo jaja..

Última edición por alex760125; 14/08/2010 a las 17:52
  #16 (permalink)  
Antiguo 14/08/2010, 18:59
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

no creo que sea eso.

si entras /home desde consola y escribes ls -l veras que aparese tu carpeta alexander con permisos 700. o lo que seria igual a:
drwx------. 28 Lair Lair 4096 ago 14 14:51 Lair
para el caso de la mia y el la pagina que te pase dice:

Cita:
13 (EACCES)

Permiso denegado
que es precisamente el error que te esta mandando:
ERROR 13 (HY000): Can't get stat of '/home/alexander/pet.txt' (Errcode: 2)

por lo que asumo que mysql no tiene los privilegios suficientes para acceder a lo que hat dentro de /home/alexander prueba haciendo lo que dice gnzsoloyo.

colocalo en la carpeta /bin y dale privilegios suficientes para que mysql pueda acceder al archivo
  #17 (permalink)  
Antiguo 14/08/2010, 20:00
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Mira lo que sale (abajo).. Qué dirección ponerle a pet.txt que está en /home/alexander acá en Ubuntu no dice más dirección como en windows que te comienza desde disco C: Qué pongo antes de /home ??

alexander@alexander-desktop:~$ ls -l
total 52
drwxr-xr-x 2 alexander alexander 4096 2010-08-15 19:15 bin
drwxr-xr-x 2 alexander alexander 4096 2010-08-11 12:26 Descargas
drwxr-xr-x 3 alexander alexander 4096 2010-07-29 20:45 Documentos
drwxr-xr-x 6 alexander alexander 4096 2010-08-15 19:18 Escritorio
-rw-r--r-- 1 alexander alexander 167 2010-06-27 00:45 examples.desktop
drwxr-xr-x 3 alexander alexander 4096 2010-08-15 21:44 Imágenes
drwxr-xr-x 2 alexander alexander 4096 2010-06-27 01:00 Música
-rw-r--r-- 1 alexander alexander 39 2010-08-15 01:57 pet.txt?
drwxr-xr-x 2 alexander alexander 4096 2010-06-27 01:00 Plantillas
drwxr-xr-x 2 alexander alexander 4096 2010-07-25 17:54 public_html
drwxr-xr-x 2 alexander alexander 4096 2010-06-27 01:00 Público
drwxrwxr-x 2 alexander alexander 4096 2010-06-29 15:00 Ubuntu One
drwxr-xr-x 2 alexander alexander 4096 2010-06-27 01:00 Videos
  #18 (permalink)  
Antiguo 14/08/2010, 20:49
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Prueba haciendo
chmod 777 pet.txt y despues ejecutas el comando mysql
  #19 (permalink)  
Antiguo 14/08/2010, 21:08
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

alexander@alexander-desktop:~$ chmod 777 pet.txt
chmod: no se puede acceder a «pet.txt»: No existe el archivo o directorio
  #20 (permalink)  
Antiguo 14/08/2010, 21:52
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Cita:
Iniciado por alex760125 Ver Mensaje
Mira lo que sale (abajo).. Qué dirección ponerle a pet.txt que está en /home/alexander acá en Ubuntu no dice más dirección como en windows que te comienza desde disco C: Qué pongo antes de /home ??

alexander@alexander-desktop:~$ ls -l
total 52
drwxr-xr-x 2 alexander alexander 4096 2010-08-15 19:15 bin
drwxr-xr-x 2 alexander alexander 4096 2010-06-27 01:00 Música
-rw-r--r-- 1 alexander alexander 39 2010-08-15 01:57 pet.txt?
drwxr-xr-x 2 alexander alexander 4096 2010-06-27 01:00 Plantillas
dale datos correctos no solo hagas lo que yo pongo, lo que quice decir es que a TU archivo le dieras esos permisos 777 con el comando chmod, si,

que si no me equivoco tu archivo se llama pet.txt? y no pet.txt
  #21 (permalink)  
Antiguo 14/08/2010, 22:38
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Puedes decirme cómo hacerlo.... Cómo doy el permiso?

Mi archivo es pet.txt no sé por qué pet.txt?
  #22 (permalink)  
Antiguo 14/08/2010, 23:31
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Mira para dar permisos es como ya lo hiciste.
Cita:
Iniciado por alex760125 Ver Mensaje
alexander@alexander-desktop:~$ chmod 777 pet.txt
chmod: no se puede acceder a «pet.txt»: No existe el archivo o directorio
pero por que no intentas otra vez cargarlo load data... pero ahora le pones el nombre correcto
  #23 (permalink)  
Antiguo 15/08/2010, 07:25
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Le di permiso como pet.txt?, después ejecute mysql y sigue el mismo error..


mysql> LOAD DATA INFILE '/home/alexander/pet.txt?' INTO TABLE pet FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
ERROR 13 (HY000): Can't get stat of '/home/alexander/pet.txt?' (Errcode: 2)
  #24 (permalink)  
Antiguo 15/08/2010, 08:50
Avatar de 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, 4 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)
  #25 (permalink)  
Antiguo 15/08/2010, 11:09
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Estimado gnzsoloyo agradezco tus respuestas pero he probado practicamente todo lo que me dices en tu última cita. También he puesto el archivo dentro de carpetas de mi equipo y del servidor apache y nada, mira...

mysql> LOAD DATA INFILE '/home/alexander/pet.txt' INTO TABLE pet FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
ERROR 13 (HY000): Can't get stat of '/home/alexander/pet.txt' (Errcode: 2)

mysql> LOAD DATA INFILE '/var/www/pet.txt' INTO TABLE pet FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
ERROR 13 (HY000): Can't get stat of '/var/www/pet.txt' (Errcode: 2)


Estuve buscando en google y unos chicos tenían el mismo problem mío, ellos resolvieron cambiando LOCAL por minúsculas local pero a mi tampoco me resulta.
  #26 (permalink)  
Antiguo 15/08/2010, 12:19
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Ayuda, error al cargar fichero.

¿Y qué permisos tienes para ejecución remota?
¿Qué permisos tiene el user que utilizas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #27 (permalink)  
Antiguo 15/08/2010, 12:31
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Amigo soy novato en el tema, lo único que he hecho ha sido instalar apache2 en mi ubuntu 10.4. Ni idea de lo que me preguntas..

El único permiso que conozco es el del documento pet.txt que está con permisos de lectura y escritura. Y además probé el consejo de Lair. Ayúdame con esos permisos, porque estuve leyendo pero no entendí mucho la verdad.

Última edición por alex760125; 15/08/2010 a las 12:38
  #28 (permalink)  
Antiguo 15/08/2010, 14:51
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Ayuda, error al cargar fichero.

El tema de los usuarios es relativamente simple, pero a la vez es crítico y algo más complejo que los usuarios de una red, cuando se trata de usuarios de bases de datos.

Tienes que comprender que el sistema de red (Linux) y el servidor de Web (Apache) cuentan con un susbsistema de gestión de usuarios que determina quienes, con qué claves y a qué recursos pueden acceder los diferentes usuarios. Los recursos que pueden usar, componen, en defintiva, los tipos de permisos que se otorgan a los usuarios.

Pero los sistemas de gestión de bases de datos son, por un lado un recurso específico, y por otro son susbsistemas que residen dentro de esos sistemas. Por ello mismo, los Data Base Management System (DBMS) o Sistemas de Gestión de Bases de Datos (SGBD) cuentan a su vez con su propio sistema de gestión de usuarios y permisos.

Esto último implica que los permisos que puedan darse a nivel de Linux son básicamente irrelevantes para el funcionamiento de los DBMS y deben serlo, porque el hecho de que tengas permiso para crear usuarios o ver ciertos ejecutables o documentos dentro de la red, no necesariamente implica que tengas la autoridad ni el permiso de ver cierta información crítica, como podría serlo el sistema de gestión comercial de una empresa. El hecho que seas el administrador de la red entera, no implica que puedas o debas ver, por ejemplo, la liquidación de sueldos de los empleados, o los pagos a los miembros del directorio, toda información que se encuentra en la base de datos.

¿Se entiende la razón de esa separación?

Habiendo hecho esta introducción, detallo:

- Todos DBMS se instala como cliente o como servidor. El cliente es nada ma´s que una instancia de comunicaciones, y el servidor es quien abastece y responde los datos. por medio de consultas y comandos.

- En todo sistema cliente - servidor hay al menos un usuario administrador que cuenta con todos los privilegios posibles. En el caso de MySQL (heredado de Linux en este caso), se denomina root. Es el primer usuario creado y posee todos los privilegios al menos en el servidor.

- Todos los usuarios los crea el root, a menos que él mismo le haya otorgado ese privilegio a algún usuario (generalmente denominados superusuarios).

- Cada usuario creado no puede poseer más privilegios de los que el usuario que lo creo poseía, esto es: el usuario B, creado por A no puede hacer más cosas que las que el A tiene permiso, porque como mínimo hereda sus permisos...

- La creación de usuarios consta de dos partes: La creación del nuevo usuario con su password, y el otorgamiento de permisos. El acto de crear un usuario no permite al usuario nuevo hacer nada si no se le dan permisos. De hecho, ni siquiera podría loguearse porque no cuenta con permisos de SESSION (tácito al otorgar cualquier permiso).

- Se puede crear un usuario que acceda a todas las bases de datos o a una sola, o incluso sólo a una tabla, a una tupla o a un procedimiento almacenado. Esto implica que se puede ser muy específico en lo que el usuario puede hacer o no.

EL conjunto completo de permisos posibles (13.5.1.3. Sintaxis de GRANT y REVOKE) son:

ALL [PRIVILEGES]
Da todos los permisos simples excepto GRANT OPTION
ALTER

Permite el uso de ALTER TABLE
ALTER ROUTINE

Modifica o borra rutinas almacenadas
CREATE

Permite el uso de CREATE TABLE
CREATE ROUTINE

Crea rutinas almacenadas
CREATE TEMPORARY TABLES

Permite el uso de CREATE TEMPORARY TABLE
CREATE USER

Permite el uso de CREATE USER, DROP USER, RENAME USER, y REVOKE ALL PRIVILEGES.
CREATE VIEW

Permite el uso de CREATE VIEW
DELETE

Permite el uso de DELETE
DROP

Permite el uso de DROP TABLE
EXECUTE

Permite al usuario ejecutar rutinas almacenadas
FILE

Permite el uso de SELECT ... INTO OUTFILE y LOAD DATA INFILE
INDEX

Permite el uso de CREATE INDEX y DROP INDEX
INSERT

Permite el uso de INSERT
LOCK TABLES

Permite el uso de LOCK TABLES en tablas para las que tenga el permiso SELECT
PROCESS
Permite el uso de SHOW FULL PROCESSLIST
RELOAD
Permite el uso de FLUSH
REPLICATION CLIENT
Permite al usuario preguntar dónde están los servidores maestro o esclavo
REPLICATION SLAVE
Necesario para los esclavos de replicación (para leer eventos del log binario desde el maestro)
SELECT
Permite el uso de SELECT
SHOW DATABASES
SHOW DATABASES muestra todas las bases de datos
SHOW VIEW
Permite el uso de SHOW CREATE VIEW
SHUTDOWN
Permite el uso de mysqladmin shutdown
SUPER
Permite el uso de comandos CHANGE MASTER, KILL, PURGE MASTER LOGS, y SET GLOBAL , el comando mysqladmin debug le permite conectar (una vez) incluso si se llega a max_connections
UPDATE
Permite el uso de UPDATE
GRANT OPTION
Permite dar permisos

No todos estos permisos se pueden otorgar globalmente con GRANT ALL, como te dije, algunos de ellos se deben otorgar específicamente, y para ello como mínimo el usuario otorgante debe tener ese permiso para si mismo.

Entre ellos, están: FILE, PROCESS, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHOW DATABASES, SHUTDOWN, y SUPER.

¿Se va entendiendo la problemática de los permisos?

En tu caso lo que hay que comprobar es cuál es el nivel de permisos que el user utilizado tiene, porque, como ya dije, puede darse el caso de no contar con el permiso de FILE, con lo que cualquier operación LOAD DATA contra el servidor será inútil, ya que no tienes permiso para hacerlo.

Lo más simple es ejecutar
Código MySQL:
Ver original
  1. SHOW GRANTS;
Eso te mostrará el nivel real de privilegios del usuario en curso.

Ten en cuenta que incluso si usas el root, si estás en modo remoto, es posible que el root no tenga permiso de FILE para hacer tareas en remoto. Esto es porque los permisos remotos y los permisos en localhost se otorgan por separado.

De hecho, si le das al mismo usuario varios niveles de permisos según el host desde donde se conecte, puedes encontrar que el la tabla de usuarios ese username aparece varias veces, una por cada host autorizado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 15/08/2010 a las 14:57
  #29 (permalink)  
Antiguo 15/08/2010, 21:22
 
Fecha de Ingreso: enero-2010
Mensajes: 239
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda, error al cargar fichero.

Mira y dime


mysql> SHOW GRANTS;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*7B966BA1332D84A9CA2C8E7599971627C2C4897D' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
  #30 (permalink)  
Antiguo 15/08/2010, 22:48
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ayuda, error al cargar fichero.

Bueno, creo que aqui traigo la solucion.

ya lo probe y si manda ese error, no es mas que un error de permisos.

lo que hice fue lo siguiente.

coloque el archivo que se va a cargar en la carpeta de la base de datos test para mi caso
/var/lib/mysql/test

y desde ahi ejecute el comando load data... y ahora si lo cargo.

te dejo este video para que veas mas claro.
http://www.youtube.com/watch?v=TYcJvdJbOdE

Nota: el contenido del archivo es el siguiente:

1,lair,now()
2,ortega,2009-08-15
3,otro,2010-08-15
4,etc...,2010-08-15

Espero y no tengas tanto inconveniente en tener que copiar el archivo a las carpetas de mysql, sino hay que buscar otra solucion.

Nos vemos.

Etiquetas: fichero
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:22.