Como posso ver as últimas consultas executadas no MySQL em formato de feed ao vivo?
Quero deixar a janela do meu terminal aberta e apenas as consultas do MySQL aparecerem na tela sempre que algo for executado. Eu sei que posso fazer isso com o comando tail, mas não tenho certeza de onde os logs do MySQL estão armazenados. Também posso executar o procedimento mysqladmin, mas isso não me fornece um feed contínuo ao vivo.
Responder1
Você tem algumas opções aqui. Você pode ativar o log de consultas gerais para MySQL adicionando:
log = /path/to/your/log.log
para o seu my.cnf (normalmente /etc/my.cnf) e reiniciando. Você pode então segui-lo conforme necessário. Eu não recomendaria necessariamente isso, pois esse log pode crescer bastante com o tempo.
Sua segunda opção, como você mencionou, é usar watch em conjunto com mysqladmin proc. Por exemplo, você pode usar:
watch -n.5 'mysqladmin proc stat'
para mostrar a lista de processos e o status a cada meio segundo. Você pode alterar -n.5 para atender às suas necessidades específicas (prefiro adicionar stat à linha para fornecer informações extras, o que às vezes pode ser útil).
Responder2
Todas as consultas são gravadas em um arquivo no sistema chamado ".mysqlhistory". Você pode executar o comando abaixo para visualizar ativamente as consultas que estão sendo executadas em seu banco de dados.
encontrar / -nome ".mysqlhistory" -exec 'tail -f'