Как увидеть полный запрос из списка процессов SHOW



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



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

609   5  

5 ответов:

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

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 SHOW FULL 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 PROCESSLIST:

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

или

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

Comments

    Ничего не найдено.