%2C%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D0%B2%D1%88%D0%B8%D1%81%D1%8C%20%D0%BA%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D1%83%20MySQL..png)
У меня установлен MySQL на моем сервере Ubuntu. Поскольку я хотел бы очистить своих пользователей, которые в настоящее время активны в MySQL, я хотел бы сначала проверить, какие пользователи - и с какого хоста - подключаются к серверу MySQL.
Единственное, что мне нужно, это какой хост подключается и какое имя пользователя используется.
Я пытался выполнить эту задачу с помощью tcpdump, но пока безуспешно. Кажется, легко получить весь запрос, но я не получаю указанную выше информацию. Сервер интенсивно используется, если нет других вариантов, я могу включить общий журнал запросов, но если это возможно, я хотел бы предотвратить этот вариант.
Есть ли у кого-нибудь совет, как мне выполнить эту задачу?
решение1
- список активных в данный момент сессий
В командной строке MySQL вы можете ввести следующее для отображения текущих активных сеансов:
mysql> show processlist;
Или этот запрос MySQL (который возвращает ту же информацию):
mysql> select * from information_schema.processlist;
И вы можете получить только пару {user,host} следующим образом:
mysql> select User,Host from information_schema.processlist;
- регистрировать и отображать историю запросов.
Включить журнал запросов MySQL
set global log_output = 'table';
set global general_log = 'on';
Посмотреть все выполненные запросы
select * from mysql.general_log;
Посмотрите временную метку, host_user и соответствующий запрос:
select event_time,user_host,argument from mysql.general_log;
Надеюсь, поможет.