cat arquivos SQL e passar para importar esquema

0

Estou tentando importar uma série de arquivos .SQL que mapeiam um arquivo por objeto DB para o mysql sem chamar o mysql 50 vezes, algo como:

mysql -u root < cat schema/db1/*.sql

Isso não está funcionando, já que "cat" não é um diretório - como eu realizaria isso - e por que não está funcionando? O que eu não entendo sobre a tubulação de comandos do Linux?

EDIT | O banco de dados é criado pelo arquivo SQL, então isso não funciona:

cat bridge_access/*.sql | mysql -u root bridge_access
    
por Alex.Barylski 26.08.2015 / 19:38

1 resposta

3

O comando que você está tentando está tentando tratar cat como um arquivo, empurrando seu conteúdo para STDIN de mysql . Em vez disso, você precisa dos resultados do comando cat enviado para STDIN, o que pode ser feito de várias maneiras diferentes. A maneira que eu faria seria canalizar a saída de cat para mysql :

$ cat schema/db1/*.sql | mysql -u root

Igualmente válido, você pode usar:

$ mysql -u root < 'cat schema/db1/*.sql'
    
por 26.08.2015 / 19:44

Tags