Obtendo o log do MySQL em um arquivo ao executar comandos MySQL a partir da linha de comando

2

Eu estou tentando obter o log do MySQL em um arquivo ao executar um script a partir da linha de comando.

Por exemplo

mysql -v mydb u- alex -p**** < please_run_me.sql > /tmp/file.log

Agora, o trabalho está concluído, mas file.log está vazio. Eu pensei que -v me daria a saída desejada. Eu gostaria de entender como eu

  1. Obtenha saída do MySQL para file.log
  2. Ou melhor, só pegue o conteúdo em file.log se o trabalho falhar (mas ambos são úteis, como quando estou testando na linha de comando, gostaria de saber o que está acontecendo)
  3. envia um e-mail para o erro e / ou o que quer que seja

(Eventualmente isso terminará como um cron job).

    
por user123350 14.07.2015 / 15:17

1 resposta

2

Você precisa redirecionar stderr para obter a saída do log ao usar -v .

Você precisa fazer algo como:

mysql -v mydb u- alex -p**** < please_run_me.sql 2>&1 > /tmp/file.log

O 2>&1 redireciona stderr para stdout , que você redireciona para /tmp/file.log . Lembre-se de que > sobrescreverá /tmp/file.log - use >> se você quiser anexá-lo.

    
por 14.07.2015 / 16:13