É possível ver quais comandos sql estão sendo executados na minha máquina do CentOS?

1

Comprei um programa que roda na minha máquina do CentOS. Está escrito em PHP. Ele usa um banco de dados MYSQL.

Uma das funções do programa é registrar novos usuários. Ele usa uma consulta SQL para adicionar os usuários. Eu quero escrever um programa python que também pode adicionar usuários a este banco de dados, mas eu não sei quais propriedades e tabelas ele adiciona (é um banco de dados bastante grande).

É possível monitorar de alguma forma quais consultas sql este programa está enviando para o MYSQL?

    
por Will 11.11.2012 / 18:28

2 respostas

3

Existem duas maneiras de fazer isso, de maneira mais simples (e talvez não boa o suficiente) e mais complicada, que lhe dará o que você procura 100%.

  1. Simplificar é apenas procurar por consultas no momento em que elas estão sendo executadas com o comando SHOW FULL PROCESSLIST . Isso irá mostrar-lhe consultas, mas se a ação (consulta SQL que você está procurando) raramente é executada, você terá que esperar um longo tempo e emitir o comando acima, muitas vezes para obter o resultado desejado. Há também uma maneira melhor.

  2. Inicie o MySQL com o log ativado, e então você poderá ver todas as consultas SQL do reinício do servidor MySQL. Aqui o problema é que o arquivo de log pode ser realmente grande e pode ser demorado para inexperientes encontrar o que você está procurando, mas essa abordagem é geralmente melhor. A opção é simples:

mysqld --log=name_of_log_file.log

É simples assim.

Apenas um aviso: quando você encontrar o que estava procurando, reinicie o MySQL, mas desta vez com o log desativado, pois isso acelerará o banco de dados e não ocupará espaço em disco no seu servidor.

    
por 11.11.2012 / 20:09
0

Para ver quais consultas do MySQL estão sendo executadas em qualquer plataforma com mysql.

A consulta do MySQL é a seguinte,

  • SHOW FULL PROCESSLIST para informações detalhadas.
  • SHOW PROCESSLIST para consultas atualmente processadas.

Abra # mysql no terminal.

mysql> SHOW FULL PROCESSLIST;

mysql> SHOW PROCESSLIST;

para documentação adicional, dê uma olhada em show-processlist.

    
por 11.11.2012 / 18:43