mysql - used - load data local infile into table
El archivo de datos de carga de mysql no puede obtener la estadística del archivo Código de error: 2 (5)
He mirado por todas partes y no he encontrado ninguna solución, cualquier ayuda sobre esto sería genial.
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 ejecutando MySQL Query browser en OSX 10.6.4 conectándome a MySQL 5.x
Cosas que he probado:
- Arrastrar y soltar
- Chmod 777
- Ponga en una carpeta con permisos 777, así como el archivo que tiene permisos 777
Para mí, copiar el contenido en / tmp y usarlo como la carpeta de origen hizo el truco. Yo uso MariaDB, y mi versión no permite usar el modificador "LOCAL". Curiosamente, dar acceso de lectura-escritura a la carpeta CSV tampoco funcionó.
Tuve el mismo problema al rellenar una tabla en mysql en una instancia de AWS.
En mi caso tuve el archivo csv en la propia instancia.
Poner el camino Absoluto resolvió mi problema.
Aquí está la línea de la documentación de MySQL.
Si se especifica LOCAL, el programa de cliente lee el archivo en el host del cliente y lo envía al servidor. El archivo se puede proporcionar como un nombre de ruta completo para especificar su ubicación exacta. Si se proporciona como un nombre de ruta relativo, el nombre se interpreta en relación con el directorio en el que se inició el programa cliente.
Tuve un problema similar. La resolución fue un truco ligeramente feo, pero mucho más fácil de recordar que las soluciones provisionales de un armero siempre que pueda "sudo". Primero, tuve que poner el archivo de entrada en el subdirectorio mysql para la base de datos que estaba usando:
sudo cp myfile.txt /var/lib/mysql/mydatabasename
Esto hace una copia y deja '' root
'' como propietario del archivo. Después de ingresar a mysql y hacer un USE mydatabasename
, pude rellenar la tabla apropiada usando
LOAD DATA INFILE ''mytabdelimitedtextfile.txt'' INTO TABLE mytablename;
Usar el parámetro local ayudará con esto.
Ejemplo: mysqlimport --local databasename file.txt -p
source: http://dev.mysql.com/doc/refman/5.1/en/load-data.html "La opción --local hace que mysqlimport lea archivos de datos desde el host del cliente"
intente usar LOAD DATA LOCAL INFILE
lugar de LOAD DATA INFILE
más compruebe si apparmor está activo para su directorio