Eu uso consultas MySQL o tempo todo em PHP, mas quando tento
LOAD DATA INFILE
Estou tendo o erro a seguir
# 1045 - Acesso negado para o usuário 'usuário' @ 'localhost' (usando senha: SIM)
Alguém sabe o que isso significa?
Eu uso consultas MySQL o tempo todo em PHP, mas quando tento
LOAD DATA INFILE
Estou tendo o erro a seguir
# 1045 - Acesso negado para o usuário 'usuário' @ 'localhost' (usando senha: SIM)
Alguém sabe o que isso significa?
Eu também encontrei esse problema. Eu tive que adicionar LOCAL
à minha instrução SQL.
Por exemplo, isso dá o problema de permissão:
LOAD DATA INFILE '{$file}' INTO TABLE {$table}
Acrescente LOCAL
à sua declaração e o problema de permissões deve desaparecer. Igual a:
LOAD DATA LOCAL INFILE '{$file}' INTO TABLE {$table}
--local-infile
opção.Eu tive esse problema. Procurei e não encontrei uma resposta satisfatória. Resumo abaixo os resultados das minhas pesquisas.
O erro de acesso negado pode significar que:
GRANT FILE on *.* to user@'localhost'
); ou,fonte
Tente usar este comando:
Isso deve funcionar. Funcionou no meu caso.
fonte
ERROR 1148 (42000): The used command is not allowed with this MySQL version
Certifique-se de que seu usuário MySQL tenha o privilégio FILE concedido.
Se você estiver em hospedagem compartilhada na web, existe uma chance de que isso seja bloqueado pelo seu provedor de hospedagem.
fonte
A string de Lyon me deu uma dica muito boa: no Windows, precisamos usar slahes e não backslashes. Este código funciona para mim:
fonte
Encontrei o mesmo problema e resolvi-o seguindo estas etapas:
Para este terceiro ponto, você pode consultar: https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_secure_file_priv
BR,
DE ANÚNCIOS
fonte
Isso também aconteceu comigo e apesar de ter seguido todos os passos descritos por Yamir em seu post não consegui fazer funcionar.
O arquivo estava em /tmp/test.csv com 777 permissões. O usuário do MySQL tinha permissões de arquivo, a opção LOCAL não era permitida pela minha versão do MySQL, então eu estava preso.
Finalmente, consegui resolver o problema executando:
fonte
Achei fácil se você estiver usando linha de comando
Entrar como
mysql -u[username] -p[password] --local-infile
então
SET GLOBAL local_infile = 1;
selecione seu banco de dados por
use [db_name]
e finalmente
LOAD DATA LOCAL INFILE 'C:\\Users\\shant\\Downloads\\data-1573708892247.csv' INTO TABLE visitors_final_test FIELDS TERMINATED BY ','LINES TERMINATED BY '\r \n' IGNORE 1 LINES;
fonte
SET GLOBAL local_infile = 1;
não parece funcionar no RDS, mas de qualquer forma sem isso--local-infile
funcionouDescobri que carregar tabelas MySQL pode ser rápido e fácil (eu estava usando scripts de gerenciador de modelos python / Django):
1) criar tabela com todas as colunas VARCHAR (n) NULL, por exemplo:
mysql> CREATE TABLE cw_well2( api VARCHAR(10) NULL,api_county VARCHAR(3) NULL);
2) remova os cabeçalhos (primeira linha) do csv e carregue (se você esquecer o LOCAL, receberá “# 1045 - Acesso negado para o usuário 'usuário' @ 'localhost' (usando senha: SIM)”):
mysql> LOAD DATA LOCAL INFILE "/home/magula6/cogswatch2/well2.csv" INTO TABLE cw_well2 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' -> ; Query OK, 119426 rows affected, 19962 warnings (3.41 sec)
3) alterar colunas:
mysql> ALTER TABLE cw_well2 CHANGE spud_date spud_date DATE;
mysql> ALTER TABLE cw_well2 CHANGE latitude latitude FLOAT;
voilà!
fonte
Provavelmente significa que a senha fornecida
'user'@'localhost'
está incorreta.fonte