cria banco de dados mysql com uma linha no bash

21

É possível criar um banco de dados vazio com uma linha de comando no bash?

Minhas tentativas de novato falharam:

mysql -uroot $(create database mydatabase;)

Eu acabo tendo que

  • mysql -uroot
  • create database mydatabase;
  • exit;
por chrisjlee 25.05.2011 / 22:29

2 respostas

30

@ A resposta do Nitrodist funcionará, mas está superengenharia do problema. O cliente de linha de comando do MySQL suporta o muito prático -e switch, desta forma:

mysql -uroot -e "create database 'foo'"

Você pode, é claro, substituir qualquer SQL válida por ele.

    
por 25.05.2011 / 22:45
13

De acordo com a documentação do MySQL, o mysql pode receber comandos de stdin

shell> mysql -uroot < script.sql > output.tab

Você pode usar Substituição de processos para fazer isso:

shell> mysql -uroot <(echo "create database mydatabase;") 

ou você pode canalizá-lo para o stdin de mysql normalmente:

shell> echo "create database mydatabase;" | mysql -uroot

Não é possível testar isso pessoalmente, mas acho que isso deve funcionar.

Editar: Outra opção é usar a opção -e , especificada aqui , assim:

shell> mysql -uroot -e "create database mydatabase;"
    
por 25.05.2011 / 22:37