Ir para conteúdo
Fórum Script Brasil
  • 0

LOAD DATA LOCAL


Marcos Tecnodata

Pergunta

Boa tarde não consigo importar arquivo texto num servidor linux remoto web eu estando numa maquina windows, quando tento importar da o seguinte erro:

LOAD DATA LOCAL INFILE "C:/publica/txt/2008/fonterenda.txt" INTO TABLE fonterenda FIELDS TERMINATED BY ""

#2 - File 'C:/publica/txt/2008/fonterenda.txt' not found (Errcode: 2)

Sendo que este arquivo existe e importa quando a maquina é a propria maquina windows que tem nela instalado o mysql, lembrando que uso o PHPMYADMIN para fazer esta importação.

já tentei com duas barras "C://publica//txt//2008//fonterenda.txt" e tb não deu certo.

Tenho o direito de root neste servidor linux para o MYSQL.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Marcos Tecnodata'

Tente "C:\\publica\\txt\\2008\\fonterenda.txt"

Ver manual MySQL versão 4.1 (tradução em português 2.6.1.3. MySQL para Windows Comparado com o MySQL para

Unix, página 124

O caracter de diretório ‘\’

Componentes de nomes de caminho no Win95 são separados pelo caracter ‘\’ o qual também é

o caractere de escape no MySQL. Se você estiver usando LOAD DATA INFILE ou SELECT

... INTO OUTFILE, use nomes de arquivo no estilo Unix com caracteres ‘/’:

mysql> LOAD DATA INFILE "C:/tmp/skr.txt" INTO TABLE skr;

mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;

Uma alternativa é dobrar o caracter ‘\’:

mysql> LOAD DATA INFILE "C:\\tmp\\skr.txt" INTO TABLE skr;

mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'Marcos Tecnodata'

Tente "C:\\publica\\txt\\2008\\fonterenda.txt"

Ver manual MySQL versão 4.1 (tradução em português 2.6.1.3. MySQL para Windows Comparado com o MySQL para

Unix, página 124

O caracter de diretório ‘\’

Componentes de nomes de caminho no Win95 são separados pelo caracter ‘\’ o qual também é

o caractere de escape no MySQL. Se você estiver usando LOAD DATA INFILE ou SELECT

... INTO OUTFILE, use nomes de arquivo no estilo Unix com caracteres ‘/’:

mysql> LOAD DATA INFILE "C:/tmp/skr.txt" INTO TABLE skr;

mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;

Uma alternativa é dobrar o caracter ‘\’:

mysql> LOAD DATA INFILE "C:\\tmp\\skr.txt" INTO TABLE skr;

mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;

Caro amigo Denis Courcy, tentei esta opção que você me passou e da o seguinte problema:

consulta SQL:

LOAD DATA LOCAL INFILE "C:\\publica\\txt\\2008\\fonterenda.txt" INTO TABLE fonterenda FIELDS TERMINATED BY ""

Mensagens do MySQL : Documentação

#2 - File 'C:\publica\txt\2008\fonterenda.txt' not found (Errcode: 2)

Que na verdade é o mesmo problema, já tinha tentado como dobrado assim mais não funciona.

Talvez eu não tenho me expressado direito para você entender, estou conectado no phpmyadmin como root no servidor web que é LINUX, da minha maquina windows quero popular uma tabela que esta na minha maquina windows (o arquivo TXT). E ai dá este erro, você já conseguiu fazer tal proeza?

Obrigado

Marcos

Link para o comentário
Compartilhar em outros sites

  • 0
...

Talvez eu não tenho me expressado direito para você entender, estou conectado no phpmyadmin como root no servidor web que é LINUX, da minha maquina windows quero popular uma tabela que esta na minha maquina windows (o arquivo TXT). E ai dá este erro, você já conseguiu fazer tal proeza?

Obrigado

Marcos

Oi, Marcos,

Ainda não tentei este tipo de proeza, mas verifique se a variavel local_infile está ON. Se não estiver, você não vai conseguir usar.

mysql> show variables like "%local%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.00 sec)

Revendo o manual do mysql versão 4.1 (tradução em português), página 551 da seção 6.4.8. Sintaxe LOAD DATA INFILE

Você também pode carregar arquivo de dados utilizado o utilitário mysqlimport; ele opera enviando um comando LOAD DATA INFILE para o servidor. A opção --local faz com que mysqlimport leia ao arquivo de dados a partir da máquina cliente. Você pode especificar a opção --compress para conseguir melhor desempenho sobre redes lentas se o cliente e o servidor suportar protocolos compactados.

Tente esta solução.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest marcos lima

Bom dia a todos, num servidor remoto linux com mysql instalado eu não consigo fazer o comando load data local infile, já num servidor windows com mysql eu consigo faze-lo, no linux da erro como se o arquivo local da minha maquina que vai ser importado não existisse. alguém pode me dar uma luz?

Marcos

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'marcos lima'

Este pode ser um problema de permissões e direitos de acesso. Não é um problema do MySQL. Quer que eu transfira este tópico para a área de Linux?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...