![]() |
|
Модераторы: skyboy |
![]()
|
|
| Zerstroer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 8.8.2007 Где: Алма-Ата Репутация: нет Всего: 3 |
Здравствуйте, уважаемые!
Стоит следующая задача. Нужен запрос или команда в консоли, которая сможет убить все процессы (сессии) запущенные от определенного пользователя и выполняющиеся меньше заданного времени. -------------------- In silico |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
SHOW PROCESSLIST покажет тебе процессы. Выбери нужные и KILL их.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zerstroer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 8.8.2007 Где: Алма-Ата Репутация: нет Всего: 3 |
Как это можно сделать руками я знаю. Вся сложность в том - что это нужно сделать программно. Либо из консоли, командой mysql, либо sql-скриптом. Возможно ли это?
-------------------- In silico |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 3 Всего: 17 |
да, вывидите и убейте
лучше pool connect использовать, максимум 1 соединение и "висеть" ничего не будет... или следить чтобы прогармма верно завершалась и отключалась от MySQL |
|||
|
||||
| Zerstroer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 8.8.2007 Где: Алма-Ата Репутация: нет Всего: 3 |
Программа должна работать и коннектов к базе должно быть более одного. Должно быть одно рутовое и 3 от другого пользователя. Через pool connect как это реализовать?
-------------------- In silico |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
SHOW PROCESSLIST даёт неформализованный вывод, который, конечно, можно обработать программно, но это будет "через одно место".
Вот вариант, который (при всех его кривизне и идиотизме) кажется мне работоспособным (полагаю, его разумно оформить пользовательской функцией): 1) сбрасываем вывод SHOW PROCESSLIST в файл 2) затягиваем содержимое файла во временную таблицу (id autoincrement, val char(80)) 3) обрабатываем таблицу, выделяем процессы "к прибитию" и kill-яем их 4) возвращаем количество прибитых процессов Хотя не думал, насколько это осуществимо на практике... С другой стороны, не понимаю, почему бы не получить нужные данные и не выполнить нужные операции извне MySQL... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zerstroer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 8.8.2007 Где: Алма-Ата Репутация: нет Всего: 3 |
Программа должна работать и коннектов к базе должно быть более одного. Должно быть одно рутовое и 3 от другого пользователя. Через pool connect как это реализовать?
Покурил мануалы нашел, что processlist содержится в таблице information_schema.processlist, но не могу найти эту таблицу в этой базе. В чем дело? -------------------- In silico |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Нет такой таблицы в схеме... Чего же это ты курил-то? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |