Как просмотреть полный запрос из Show PROCESSLIST

когда я выдаю запрос SHOW PROCESSLIST, в столбце info возвращаются только первые 100 символов запущенного SQL-запроса.

можно ли изменить конфигурацию Mysql или выдать другой вид запроса, чтобы увидеть полный запрос (запросы, которые я смотрю, длиннее 100 символов)

5 ответов



Show Processlist извлекает информацию из другой таблицы. Вот как вы можете вытащить данные и посмотреть на столбец "INFO", который содержит весь запрос:

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

Вы можете добавить любое условие или проигнорировать основанное на вашем требовании.

результат запроса выглядит следующим образом:

+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
| 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' |

Я только что прочитал в документация MySQL это SHOW FULL PROCESSLIST по умолчанию перечислены только потоки из вашего текущего подключения пользователя.

цитата из MySQL показывает полную документацию PROCESSLIST:

если у вас есть привилегия процесса, вы можете видеть все потоки.

таким образом, вы можете включить в своем mysql.user таблица. Не забудьте выполнить FLUSH PRIVILEGES позже :)


единственное плохое в show [full] processlist - вы не можете фильтровать результат вывода. С другой стороны, выдача SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST открыть возможности для удаления из вывода всего, что вы не хотите видеть:

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

см. полный запрос из списка процессов SHOW:

  • ПОКАЗАТЬ ПОЛНЫЙ СПИСОК ПРОЦЕССОВ;

или

  • ВЫБЕРИТЕ * ИЗ INFORMATION_SCHEMA.PROCESSLIST;