Eu quero executar um arquivo de texto contendo consultas SQL, no MySQL.
Tentei executar source /Desktop/test.sql
e recebi o erro:
mysql>. \ home \ sivakumar \ Desktop \ test.sql ERRO: falha ao abrir o arquivo '\ home \ sivakumar \ Desktop \ test.sql', erro: 2
Alguma idéia do que estou fazendo de errado?
mysql
command-line
user1160432
fonte
fonte
Respostas:
Se você estiver na linha de comando do MySQL,
mysql>
precisará declarar o arquivo SQL comosource
.fonte
\
antes do espaço ou quebrar o nome do arquivo com"
.Você tem muitas opções:
mysql -h hostname -u user database < path/to/test.sql
fonte
-p
opção, isso não é recomendado: Outros usuários no mesmo host podem usar ferramentas do sistema comops
lê-las neste caso.-p
sem um prompts argumento para a senha para ser inserido na linha seguintevocê pode executar instruções mysql que foram gravadas em um arquivo de texto usando o seguinte comando:
se o seu banco de dados ainda não foi criado, entre no seu mysql primeiro usando:
então:
então:
isso deve resolver!
Mais informações aqui: http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
fonte
mysql -u yourusername -p"yourpassword"
Minha opção favorita para fazer isso será:
Eu o uso desta maneira porque quando você o "" amarra, você evita caminhos errados e erros de espaço e - e provavelmente mais problemas com caracteres que eu não encontrei.
Com o comentário @elcuco, sugiro usar este comando com [space] antes, para que o bash ignore o salvamento no histórico, isso funcionará imediatamente na maioria dos bash.
Caso ainda esteja salvando seu comando no histórico, consulte as seguintes soluções:
Executar comando sem mantê-lo no histórico
edição de segurança extra
Caso você queira ter segurança extra, use o seguinte comando e digite a senha na entrada da linha de comando:
fonte
Todas as principais respostas são boas. Mas, caso alguém queira executar a consulta de um arquivo de texto em um servidor remoto E salvar os resultados em um arquivo (em vez de aparecer no console), você pode fazer o seguinte:
Espero que isso ajude alguém.
fonte
-p
e a senhaSELECT ... INTO OUTFILE /path/to/file.csv
é a maneira mais eficiente. Veja opções e sintaxe aqui - dev.mysql.com/doc/refman/5.7/en/select-into.htmlDê o caminho do arquivo .sql como:
fonte
Eu vim aqui procurando esta resposta também, e aqui está o que eu achei que funciona melhor para mim: Nota: estou usando o Ubuntu 16.xx
mysql -u <your_user> - p
source file_name.sql
Espero que isto ajude.
fonte
mysql -u<user> -p -e 'source filename.sql'
Não especifique aspas simples.
Se o comando acima não estiver funcionando, copie o arquivo para c: drive e tente novamente. como mostrado abaixo,
fonte
Nunca é uma boa prática passar o argumento da senha diretamente da linha de comando, ele é salvo no
~/.bash_history
arquivo e pode ser acessado por outros aplicativos.Use isto:
fonte
fonte
Muito provavelmente, você só precisa alterar a barra / barra preta: de
para
Portanto, o comando seria:
fonte
use o seguinte no prompt de comando do mysql -
Não use cotação. Mesmo que o caminho contenha espaço (''), não use aspas .
fonte
em vez de redirecionamento, eu faria o seguinte
Isso executará o arquivo path-to-sql-file
fonte
Tantas maneiras de fazer isso.
Se você receber erros na linha de comando, verifique se executou anteriormente
Isso deve ser executado no diretório mysqld.exe, daí o CD.
Espero que isso seja útil e não apenas redundante.
fonte
Desde
mysql -u yourusername -p yourpassword yourdatabase < text_file
que não funcionou em um servidor remoto (EC2 da Amazon) ...Certifique-se de que o banco de dados seja criado primeiro.
Então:
fonte
Para referência futura, achei que funcionava contra os métodos mencionados acima, no Windows no console do msql:
mysql >>
source c://path_to_file//path_to_file//file_name.sql;
Se o seu drive raiz não for chamado "c", basta trocar com o nome do seu drive. Primeiro tente barras invertidas; se elas não funcionarem, tente a barra. Se eles também não funcionarem, verifique se você possui o caminho completo do arquivo, a extensão .sql no nome do arquivo e se a sua versão insiste em ponto-e-vírgula, verifique se existe e tente novamente.
fonte
Eu tive esse erro e tentei todos os conselhos que não consegui.
Finalmente, o problema era que minha pasta tinha um espaço no nome da pasta que aparecia como uma barra no caminho da pasta, depois que a encontrei e a removi, ela funcionou bem.
fonte