MySQL - как ПОКАЗАТЬ PROCESSLIST только с процессами текущего пользователя? - PullRequest
13 голосов
/ 02 декабря 2008

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

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

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

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

Ответы [ 2 ]

21 голосов
/ 02 декабря 2008

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

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

3 голосов
/ 03 декабря 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...