MySQL - как SHOW PROCESSLIST только с текущими пользовательскими процессами?

Есть ли способ в MySQL 5 показать только текущие пользовательские процессы (запросы)?

Пользователь имеет привилегию PROCESS, поэтому SHOW PROCESSLIST отображает запущенные процессы всех пользователей. Согласно документации, SHOW PROCESSLIST не позволяет использовать какой-либо синтаксис WHERE, и мне не удалось сделать его в подзапрос.

Конечно, я мог просто отправить запрос, например. в PHP script, и пройдите результаты в цикле, отбросив все, что не мое, но оно кажется довольно неэффективным. Изменение прав пользователя не представляется возможным.

Есть ли другие способы? Спасибо заранее.

2 ответа

Если вы используете MySQL 5.1.7 или новее, вы можете использовать таблицу PROCESSLIST в INFORMATION_SCHEMA. Таким образом, вы можете запросить его с помощью обычных запросов SELECT и применить условия фильтрации в предложении WHERE.

Эта функция не реализована в MySQL 5.0 и ранее.


Если у пользователя нет PROCESS, тогда SHOW PROCESSLIST будет показывать только свои собственные потоки.

licensed under cc by-sa 3.0 with attribution.