Como visualizar uma lista de consultas MySQL executadas anteriormente em um formato de feed ao vivo?

Como visualizar uma lista de consultas MySQL executadas anteriormente em um formato de feed ao vivo?

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'

informação relacionada