Ative o registro binário do MySQL. Em seguida, você pode usar o comando mysqlbinlog
para ver todas as instruções de modificação de dados.
Foi decidido que deveríamos passar a usar um banco de dados (MySQL) para nossos logs de aplicativo (é um aplicativo Java usando o logback lib). Espero encontrar algo como tail -f
que eu possa usar com uma tabela específica no banco de dados que mostrará novas linhas à medida que forem adicionadas (semelhante a como tail -f
trabalhou nos arquivos de log).
Eu não acho que algumas pessoas entendem a pergunta (ou não). Você não quer registrar as consultas no banco de dados; em vez disso, um log de um aplicativo está entrando em um banco de dados. Se fosse um arquivo, você poderia seguir o log. Como você segue uma tabela para que quando uma nova linha seja adicionada, ela seja produzida?
Não deve ser difícil escrever um loop simples para lidar com isso, supondo que você tenha um campo exclusivo que aumenta monotonicamente ao longo do tempo (por exemplo, um número de sequência).
current_pos = select max(seq) from table
while true
new_pos = select max(seq) from table
if new_pos > current_pos
select * from table where seq > current_pos
current_pos = new_pos
endif
sleep 1
endwhile
Parece que muitos de nós não entendem muito bem sua pergunta. O que você quer dizer com "banco de dados de registro" , que não é um termo padrão do MySQL.
Use o Registro geral de consultas do MySQL, que registra cada declaração recebida de um cliente.
Você pode definir log_output = TABLE no seu my.cnf. O arquivo será gravado em $ mysql_data_directory / general_log.CSV. Você pode tail -f
este arquivo para ver as consultas em tempo real.
Aqui está o que eu uso. Parece a solução mais simples, embora não seja muito eficiente:
watch "mysql db_name -e '(SELECT * FROM my_table ORDER BY id DESC LIMIT 10) ORDER BY id ASC;'"
Você pode fazer isso de maneira hacker usando tail -f no arquivo de banco de dados (/var/lib/mysql/database_name/table_name.MY*) e, em seguida, executando sua consulta toda vez que uma linha é lida.
Sugiro adicionar um campo de carimbo de data / hora a qualquer tabela que você queira acompanhar. Isso permitirá que você obtenha os resultados desejados com muita facilidade com uma simples consulta.
Você pode gostar disso:
É velho e não foi tocado por 3 anos - mas eu apenas tentei e funciona bem. Clone o repositório BZR e leia o README.