9
respostas

Importando dados externos para um container Docker

Como faço para executar o comando abaixo para importar dados do arquivo .sql externo para dentro do container Docker:

mysql -u root -p controle_compras < cap2.sql

Eu já tenho um container do MySQL rodando e acesso ele com o comando abaixo:

docker exec -it alura-docker mysql -uroot -p
9 respostas

Olá,

Acredito que esse comando possa ajudar:

docker exec -i [container] mysql -u root [nome do banco] < /c/Users/[meu usuário]/dados.sql

Eu já havia tentado isso:

docker exec -it alura-mysql -u root controle_compras < /home/deyve/docker/alura/mysql/ca2.sql

Recebo essa mensagem de erro:

bash: /home/deyve/docker/alura/mysql/ca2.sql: No such file or directory

Pela mensagem ele não encontra o arquivo, uma sugestão tente no terminal mudar o diretório até chegar o local onde está salvo o arquivo ca2.sql, uma vez que você está nesse diretório coloque pwd no terminal para ver o caminho completo.

Eu conheço esse comando e executei da própria pasta onde está o arquivo

  • Percebi que tinha digitado o nome do arquivo errado...

  • Mas agora dá outro erro mesmo executando da pasta onde se encontra o arquivo.

docker exec -it alura-mysql -u root controle_compras < /home/deyve/docker/alura/mysql/cap2.sql
the input device is not a TTY

Acredito que só tirar o -t, deverá funcionar.

  • Também já tentei isso ....

Me parece que está faltando o mysql antes de -u root

docker exec -i alura-mysql mysql -u root controle_compras < /home/deyve/docker/alura/mysql/cap2.sql

Falar Rafael,

O que você comentou procede e também também tirei o nome do banco do comando.

Meu comando final ficou assim:

docker exec -i alura-mysql mysql -uroot -p<my-password>  < cap2.sql

Só ficou com um warning por passar a senha na linha de comando:

Warning: Using a password on the command line interface can be insecure.

E inclui no script sql o comando para usar o banco onde eu iria inserir os dados:

use controle_compras;