ti-enxame.com

Como ver a consulta completa de SHOW PROCESSLIST

Quando eu emita a consulta SHOW PROCESSLIST, apenas os primeiros 100 caracteres da consulta SQL em execução são retornados na coluna info.

É possível alterar a configuração do Mysql ou emitir um tipo diferente de solicitação para ver a consulta completa (as consultas que estou vendo têm mais de 100 caracteres)

250
Ghostrider
SHOW FULL PROCESSLIST

Se você não usar FULL, "somente os primeiros 100 caracteres de cada instrução são mostrados no campo Info" .

Ao usar o phpMyAdmin, você também deve clicar na opção "Textos completos" ("← T →" no canto superior esquerdo de uma tabela de resultados) para ver os resultados não-truncados.

412
James McNellis

Show Processlist busca as informações de outra tabela. Aqui está como você pode puxar os dados e olhar para a coluna 'INFO' que contém toda a consulta:

select * from INFORMATION_SCHEMA.PROCESSLIST where db = 'somedb';

Você pode adicionar qualquer condição ou ignorar com base em sua necessidade.

A saída da consulta é resultado como:

+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
| ID    | USER | Host            | DB     | COMMAND | TIME | STATE     | INFO                                                     |
+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
|     5 | ssss | localhost:41060 | somedb | Sleep   |    3 |           | NULL                                                     |
| 58169 | root | localhost       | somedb | Query   |    0 | executing | select * from sometable where tblColumnName = 'someName' |
63
Yogesh Sakurikar

Acabei de ler no documentação do MySQL que SHOW FULL PROCESSLIST por padrão apenas lista os tópicos da sua conexão de usuário atual .

Citação da documentação do MySQL SHOW FULL PROCESSLIST:

Se você tiver o privilégio PROCESS, poderá ver todos os tópicos.

Então você pode habilitar a coluna Process_priv em sua tabela mysql.user. Lembre-se de executar FLUSH PRIVILEGES depois :)

11
hardcoder

A única coisa ruim sobre o show [full] processlist é que você não pode filtrar o resultado da saída. Por outro lado, a emissão do SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST abre possibilidades para remover da saída qualquer coisa que você não queira ver:

SELECT * from INFORMATION_SCHEMA.PROCESSLIST
WHERE DB = 'somedatabase'
AND COMMAND <> 'Sleep'
AND Host NOT LIKE '10.164.25.133%' \G
7
cristianoms

Consulte a consulta completa em SHOW PROCESSLIST:

SHOW FULL PROCESSLIST;

o

 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
5
Hasib Kamal