-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 | uma vez fiz um script que instala o qmail e utilizei o seguinte comando | para executar SQLs da vida, segue exemplo | RESULTADO=`echo "SELECT * FROM tabela WHERE campo=valor" | mysql -uroot | -psenhadomysql` | ai pra conferir da um | echo $RESULTADO
A lista mesmo contém várias mensagens falando sobre isso. No caso do exemplo acima, tenho comentários e uma correção: - - correção mysql -uusuario -psenhadousuario database O cliente mysql exige que o nome do database seja enviado a ele quando uma query vai ser executada - - comentários: O cliente mysql possui uma opção -e que serve para enviar uma query ao servidor mysql. Então, seu exemplo, corretamente grafado, poderia ficar assim: mysql -uusuario -psenha -e "SELECT * FROM tabela WHERE campo=valor" database Há uma caracteristica que pode atrapalhar nosso script. A primeira linha do retorno desse comando será um cabeçalho contendo o nome dos campos. Isso pode fazer nosso script comportar-se mal. Imagine que lemos o resultado dessa query em um laço e, num determinado momento, utilizamos expr para fazer um cálculo. Se passamos um parâmetro não numérico para o expr, ele vai gerar um erro e pode parar nosso script. Para removê-la mysql -uusuario -psenha -N -e "SELECT * FROM tabela WHERE campo=valor" database O outro comentário é sobre escrever-se usuário e senha do banco de dados em um script plain text. Eu contorno esse problema com um arquivo ~/.my.cnf contendo: [mysql] user=usuario password=senha O cliente mysql vai lê-lo e o comando poderá ficar assim: mysql -N -e "SELECT * FROM tabela WHERE campo=valor" database Desde que esse arquivo ~/.my.cnf esteja devidamente protegido, você não terá problemas com senhas. O ultimo comentário é sobre escrever a senha de administrador do banco de dados em plain text ! A regra de não acessar seu ambiente unix como usuário root vale para bancos de dados também. Tenho boas histórias de scripts e programas que acessavam MySQL como usuario root, deixando a senha em plain text e, vejam que legal, era a mesma senha do usuário root do servidor. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFHu/k3rDdxWm3R8YYRAlhFAJ9m0MO2DrUmk9MTLzJW8y/xwRNRtACffmVS OR+zMV4cj3Jqd03zg2bB5cE= =oaUO -----END PGP SIGNATURE-----
