2010-08-12 18 views
53

He buscado por todos lados y no he encontrado ninguna solución, cualquier ayuda sobre esto sería genial.mysql load data infile no puede obtener la estadística del archivo Errcode: 2

Consulta:

LOAD DATA INFILE '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' 
INTO TABLE `tba`.`tbl_name` 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES 
(
field1, field2, field3 
) 

error:

Can't get stat of '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' (Errcode:2) 

NOTA:

estoy corriendo MySQL Query Browser en OSX 10.6.4 conectar a MySQL 5.x

Cosas que he intentado:

  • de arrastrar y soltar
  • Chmod 777
  • Poner en una carpeta con permisos 777 , así como el archivo que tiene 777 permisos
+0

revisar los foros de MySQL. Aquí hay solo un enlace: http://forums.mysql.com/read.php?10,228976,228976#msg-228976 – spinon

+0

@spinon intentó esto, no funciona. Me da la misma ruta de archivo que tengo. Eliminé lo que tenía y al arrastrar y arrastrar el archivo me da la misma ruta. Al ejecutar, me da el mismo error –

+1

También parece que el archivo puede no existir: http://www.electrictoolbox.com/article/mysql/mysqlimport-errors/ Buscar errcode: 2 en la página – spinon

Respuesta

101

intenta utilizar LOAD DATA LOCAL INFILE en lugar de LOAD DATA INFILE

else comprobar si apparmor está activo para su directorio

+0

intenté esto pero ahora recibo un error SQL: Usted tiene un error en su sintaxis SQL; revise el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta que debe usar cerca de 'INFO DE INFORMACIÓN LOCAL' /Users/name/Desktop/loadIntoDb/loadIntoDB.csv ' INT' en la línea 1 –

+6

es LOAD DATA LOCAL INFILE ya que usted lidera por el camino correcto. Respuesta aceptada –

+0

ah, sí, perdón por el error tipográfico – Pierre

9

Tuve un problema similar. La resolución fue un truco ligeramente feo, pero mucho más fácil de recordar que las soluciones provisionales siempre que puedas 'sudo'. En primer lugar, tenía que poner el archivo de entrada en el subdirectorio de MySQL para la base de datos que estaba usando:

sudo cp myfile.txt /var/lib/mysql/mydatabasename 

Esto hace una copia y hojas 'root' como el propietario del archivo. Después de entrar en MySQL y haciendo un USE mydatabasename, yo era capaz de rellenar la tabla apropiada usando

LOAD DATA INFILE 'mytabdelimitedtextfile.txt' INTO TABLE mytablename; 
+1

Para quién podría encontrar esto útil, esta es la solución que funcionó para mí en lugar de la respuesta aceptada. Estoy en Ubuntu 12.04 LTS y MySQL 5.5.35-0ubuntu0.12.04.1. –

+1

Del mismo modo, pude solucionar esto en Ubuntu 12.04, mysql 5.5.31 cambiando el usuario de mi archivo: group a mysql: mysql – user18477575

1

Para mí, la copia el contenido de/tmp y usar eso como la carpeta fuente hizo el truco. Uso MariaDB, y mi versión no permite el uso del modificador "LOCAL". Curiosamente, el acceso de lectura y escritura a la carpeta CSV tampoco funcionaba.

0

Tuve el mismo problema al rellenar una tabla en mysql en una instancia de AWS.

En mi caso, tenía el archivo csv en la instancia en sí.

Poniendo la ruta absoluta resolvió mi problema.

Aquí está la línea de la documentación de MySQL

If LOCAL is specified, the file is read by the client program on the client host and sent to the server. The file can be given as a full path name to specify its exact location. If given as a relative path name, the name is interpreted relative to the directory in which the client program was started.

http://dev.mysql.com/doc/refman/5.7/en/load-data.html

Cuestiones relacionadas