Respostas:
A resposta do @ Nitrodist funcionará, mas está sobrecarregando o problema. O cliente de linha de comando do MySQL suporta a opção muito útil -e
, da seguinte maneira:
mysql -uroot -e "create database 'foo'"
É claro que você pode substituir qualquer SQL válido por lá.
mysql -uroot -e "create database foo"
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''foo'' at line 1
. Sem eles, funciona bem. Obrigado @IanVaughan
De acordo com a documentação do MySQL, o mysql
pode receber comandos destdin
shell> mysql -uroot < script.sql > output.tab
Você pode usar a Substituição de Processo para fazer isso:
shell> mysql -uroot <(echo "create database mydatabase;")
Ou você pode simplesmente canalizá-lo para o stdin
de mysql
normalmente:
shell> echo "create database mydatabase;" | mysql -uroot
Não posso testar isso pessoalmente, mas acho que isso deve funcionar.
Editar: Outra opção é usar a -e
opção especificada aqui , da seguinte forma:
shell> mysql -uroot -e "create database mydatabase;"