使用绝对URL加载数据infile MySQL

时间:2014-08-19 16:22:29

标签: mysql csv

我尝试在表格中加载CSV。 我的CSV在我服务器的文件夹中。 (wwww.myweb.com/temp/file.csv)

我用这句话:

LOAD DATA INFILE 'http://wwww.myweb.com/temp/file.csv' INTO TABLE ga_tmpActivosDocumentos FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' IGNORE 1 LINES (idTipoSuelo,C_Latitud,C_Longitud,Referencia,Zona,idProvincia,Poblacion,TituloActivo,Descripcion,Superficie,Gastos,Equipamiento,EquipamientoEN,GestionDocumental,PrecioVenta,CampoLibre1_Texto,CampoLibre1_Titulo,CampoLibre1_TextoEN,CampoLibre1_TituloEN,Activo, IMG1,IMG_Desc1,IMG_Desc1EN,IMG2,IMG_Desc2,IMG_Desc2EN,IMG3,IMG_Desc3,IMG_Desc3EN,IMG4,IMG_Desc4,IMG_Desc4EN,DOC1,DOC_Desc1,DOC_Desc1EN,DOC2,DOC_Desc2,DOC_Desc2EN,DOC3,DOC_Desc3,DOC_Desc3EN,DOC4,DOC_Desc4,DOC_Desc4EN,URL1,URL_Desc1,URL_Desc1EN,URL2,URL_Desc2,URL_Desc2EN) SET idCliente = 23

这句话对我不起作用。我尝试将路径更改为... / temp / file.csv,以及其他组合但不起作用。

还使用" LOAD DATA LOCAL INFILE"但不起作用。

我已阅读其他主题,但只查看带有相对网址的示例,绝不是绝对的。

谢谢,对不起我的英文

3 个答案:

答案 0 :(得分:2)

  1. 在您的LOCAL计算机上保存CSV文件。
  2. 从LOCAL计算机连接到数据库
  3. 发出以下命令:load data LOCAL infile '/tmp/file.csv' INTO TABLE table_name;
  4. You can also load data files by using the mysqlimport utility; it operates by sending a LOAD DATA INFILE statement to the server. The --local option causes mysqlimport to read data files from the client host.

答案 1 :(得分:1)

MySQL无法访问该位置的文件。尝试将其移动到像本地文件系统上的/ tmp(或复制它)这样的地方,而不是通过URL参数。

MySQL进程可能无法加载文件夹BEFORE" temp / file.csv"

答案 2 :(得分:1)

@vadym-tyemirov 答案有效,但如果您不想创建临时文件,一种解决方案是从“/dev/stdin”加载它并将其通过管道传输到 mysql cli:

wget -O - 'http://wwww.myweb.com/temp/file.csv' |
    mysql \
        --user=root \
        --password=password \
        --execute="LOAD DATA LOCAL INFILE '/dev/stdin' INTO TABLE table_name"