Получите имена пользователей и IP-адреса с помощью tcpdump (или другого инструмента захвата), подключившись к серверу MySQL.

Получите имена пользователей и IP-адреса с помощью tcpdump (или другого инструмента захвата), подключившись к серверу MySQL.

У меня установлен MySQL на моем сервере Ubuntu. Поскольку я хотел бы очистить своих пользователей, которые в настоящее время активны в MySQL, я хотел бы сначала проверить, какие пользователи - и с какого хоста - подключаются к серверу MySQL.

Единственное, что мне нужно, это какой хост подключается и какое имя пользователя используется.

Я пытался выполнить эту задачу с помощью tcpdump, но пока безуспешно. Кажется, легко получить весь запрос, но я не получаю указанную выше информацию. Сервер интенсивно используется, если нет других вариантов, я могу включить общий журнал запросов, но если это возможно, я хотел бы предотвратить этот вариант.

Есть ли у кого-нибудь совет, как мне выполнить эту задачу?

решение1

  1. список активных в данный момент сессий

В командной строке MySQL вы можете ввести следующее для отображения текущих активных сеансов:

mysql> show processlist;

Или этот запрос MySQL (который возвращает ту же информацию):

mysql> select * from information_schema.processlist;

И вы можете получить только пару {user,host} следующим образом:

mysql> select User,Host from information_schema.processlist;
  1. регистрировать и отображать историю запросов.

Включить журнал запросов 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;

Надеюсь, поможет.

Связанный контент