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

Problemas al pasar un CSV a MySql con LOAD DATA INFILE...

Estas en el tema de Problemas al pasar un CSV a MySql con LOAD DATA INFILE... en el foro de Mysql en Foros del Web. Estoy intentando pasar un archivo .csv a mysql con la opcion: LOAD DATA LOCAL INFILE 'path/fichero.csv' INTO TABLE nombre_tabla FIELDS TERMINATED BY ';' pero cuando ...
  #1 (permalink)  
Antiguo 05/09/2003, 06:06
 
Fecha de Ingreso: marzo-2002
Mensajes: 86
Antigüedad: 22 años, 1 mes
Puntos: 0
Problemas al pasar un CSV a MySql con LOAD DATA INFILE...

Estoy intentando pasar un archivo .csv a mysql con la opcion: LOAD DATA LOCAL INFILE 'path/fichero.csv' INTO TABLE nombre_tabla FIELDS TERMINATED BY ';' pero cuando lo ejecuto a través del phpMyAdmin me da el siguiente error: The used command is not allowed with this MySQL version

Esto mismo lo he ejecutado de forma local en mi pc (con un servidor apache y mysql en local) y funciona correctamente.

La version de mysql que se ejcuta en mi servidor es la MySQL 3.23.54

A alguien se le ocurre que es lo que sucede...se os ocurre otra alternativa para poder importar un csv a mysql?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 05/09/2003, 09:00
 
Fecha de Ingreso: marzo-2002
Mensajes: 86
Antigüedad: 22 años, 1 mes
Puntos: 0
Ya lo he solucionado:

Quitando LOCAL funciona sin ningún problema; Tiene que quedar de la siguiente manera:

LOAD DATA INFILE 'path/fichero.csv' INTO TABLE nombre_tabla FIELDS TERMINATED BY ';'
  #3 (permalink)  
Antiguo 10/09/2003, 13:51
Avatar de SkyWalker  
Fecha de Ingreso: enero-2002
Mensajes: 39
Antigüedad: 22 años, 3 meses
Puntos: 0
Ya he hecho esto y no me funcionó .... me salia esto:

Access denied for user: 'xxxx@localhost' (Using password: YES)

y no cargaba na de ná... consulté con el soporte del hosting(q es linux por cierto), pensando q a lo mejor necesitaba algún privilegio, me activaron File_priv para mi
usuario así como el lock tables y a probar de nuevo...

The file '/tmp/phptsHpSP' must be in the database directory or be readable
El archivo '/tmp/phptsHpSP ' debe estar en el directorio de base de datos o ser legible por todos

de nuevo fallaba .... pero leyendo esto y lo q dice probe a copiar el archivo temporal a una carpeta y cargarlo desde ahí y todo funsioná correctamente:

Este es mi código:

<?
// Código por SkyWalker
// Nota: La carpeta temporal debe exitir en el mismo directorio que el script

$dbhost = "localhost"; // HOST DONDE SE ENCUENTRA LA BASE DE DATOS
$dbuser = "root"; // USUARIO PROPIETARIO DE LA BASE DE DATOS
$dbpass = ""; // CONTRASEÑA DEL USUARIO PROPIETARIO DE LA BASE DE DATOS
$dbname = "eventoSI_V1"; // NOMBRE DE LA BASE DE DATOS
$tabla="tabla"; // INDICAR NOMBRE DE LA TABLA

$conectarbd = mysql_connect ($dbhost, $dbuser, $dbpass);
@mysql_select_db($dbname);

if ($file1_size < 500000) {

if ($file1_type=="application/octet-stream") {

$nuevoarchivo = "temporal.csv";
copy ($file1,"temporal/$nuevoarchivo");

// Nos dice la ruta del script
$ruta = str_replace ("estescript.php","",$SCRIPT_FILENAME);

$ficheroruta = $ruta."temporal/"$nuevoarchivo;

// Esto para Linux
$fichero = str_replace("\\", "\\\\", $ficheroruta);

// Para Windows
//$fichero = str_replace("/", "\\\\", $ficheroruta);

$sql = "LOAD DATA INFILE '$fichero' INTO TABLE ".$tabla." FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\\n'";
$query = mysql_query($sql,$conectarbd);

$error=mysql_error();
ECHO"$sql<BR>$error";

} else { ECHO"No es un archivo válido.";}
} else ( ECHO"Tamaño no válido.";)
?>


Saludos SkyWalker

Última edición por SkyWalker; 10/09/2003 a las 13:53
  #4 (permalink)  
Antiguo 04/01/2006, 13:05
 
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 2 meses
Puntos: 0
Tengo un problema similar

Hola Sky...
Tengo un problema similar. He hecho varios intentos y nada...
Cuando utilizo la orden:
LOAD DATA INFILE 'C:/usuarios_sm.txt' INTO TABLE usuarios
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Me aparece :
#1045 - Access denied for user: 'smarga@localhost' (Using password: YES)

Que mas debo hacer o pedir a mi proveedor?
Te estaré muy agradecido...
MAC
  #5 (permalink)  
Antiguo 04/01/2006, 13:21
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
mira parece que tienes problema de conexion (el usuario y su password)mas que problema de sintaxis, dime estas ejecutando el comando dentro del prompt de mysql
Código PHP:
mysqlLOAD DATA INFILE 'C:/usuarios_sm.txt' INTO TABLE usuarios
    
-> FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"'
    
-> LINES TERMINATED BY '\n'
si estan dentro de la consola de mysql, deberias revisar si tienes permisos sobre la tabla que desear trabajar, cya
  #6 (permalink)  
Antiguo 14/10/2011, 13:02
 
Fecha de Ingreso: abril-2008
Ubicación: Chihuahua Mexico
Mensajes: 166
Antigüedad: 16 años
Puntos: 15
Respuesta: Problemas al pasar un CSV a MySql con LOAD DATA INFILE...

yo se que es un tema nuevo pero ami tampoco me funciona el data load infile desde el servidor solo en local aun que alla puesto lo que dice skywalker no me devuelve error pero simplemente no llena la db no exisitra otra forma de pasar de txt a mysql desde el server????
  #7 (permalink)  
Antiguo 14/10/2011, 13:07
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: Problemas al pasar un CSV a MySql con LOAD DATA INFILE...

Cita:
Iniciado por espher Ver Mensaje
yo se que es un tema nuevo pero ami tampoco me funciona el data load infile desde el servidor solo en local aun que alla puesto lo que dice skywalker no me devuelve error pero simplemente no llena la db no exisitra otra forma de pasar de txt a mysql desde el server????
Sería mejor que abrieses un post propio y expliques un poco mejor qué es lo que estás probando y cómo está armado el archivo de datos.

Por lo pronto no resucites muertos. Este thread tiene ya ocho años, y ni siquiera estás hablando de la misma versión de MyQSL...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:32.