Como criar um script para executar comandos mysql

1

É possível usar um script de shell para executar este comando a seguir?

mysql -u user
use mydb
delete from mydata where row='xx'
    
por AGamePlayer 12.10.2015 / 05:58

3 respostas

2

Este é um trabalho para um "documento aqui":

mysql -u user << END_CMDS
use mydb
delete from mydata where row='xx'
END_CMDS

O "documento aqui" é uma maneira de colocar o SQL em linha dentro do próprio script. Não tenho certeza de como a senha do MySQL do ID do usuário é usada nisso. Você terá que experimentar se esse usuário tiver uma senha.

A invocação mysql pode ser recuada em seu script de shell, mas não indente o token que termina seu "aqui documento", que é END_CMDS no meu exemplo acima.

    
por 12.10.2015 / 06:28
2

Esse comando pode ajudar você:

mysql -u user -p mydb --execute="delete from mydata where row='xx'"

    
por 12.10.2015 / 06:29
0

Você pode estar interessado em examinar alguns dos scripts na minha página da web mythtv-tools . Eles são exemplos razoavelmente bons de executar comandos mysql a partir de um script de shell e de construir comandos mysql moderadamente complicados (por exemplo, com várias cláusulas WHERE) com base na análise da opção getopt.

Todos usam a mesma técnica básica de construir uma string SQL e inseri-la em mysql ou mysql --batch .

Nenhum deles usa as opções --user ou --password , pois qualquer usuário no sistema pode vasculhar /proc (ou apenas executar ps ) e ver o login e a senha nas opções da linha de comando. Em vez disso, eles contam com a existência de um arquivo ~/.my.cnf contendo credenciais de login.

    
por 12.10.2015 / 09:13

Tags