Как узнать кто подключался к СУБД MYSQL?
Если решите как-то реализовать написанное, то все действия вы производите на свой страх и риск!
Иногда бывает нужно выявить, кто подключениями грузит СУБД.
Есть несколько вариантов (не считая Enterprise возможностей):
1. Посмотреть в данный момент что происходит, зайдя в управление:
SHOW FULL PROCESSLIST;2. Писать в таблицу
Включение записи логов в таблицу
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';Просмотр
SELECT event_time, user_host, argument
FROM mysql.general_log
WHERE argument LIKE '%Connect%'
ORDER BY event_time DESC;3. Писать в файл
Если без перезапуска
SET GLOBAL log_output = 'FILE';
SET GLOBAL general_log_file = '/var/log/mysql/mysql_general.log';
SET GLOBAL general_log = 'ON';Если на постоянку, то в конфиге
[mysqld]
general_log = 1
log_output = FILE
general_log_file = /var/log/mysql/mysql_general.logИ перезапускаем сервис.
❗️Логи пишутся все, включая запросы, но через таблицу может быть удобнее выборку нужных данных делать.
4. Никто не отменял перехват трафика с записью в файл
tcpdump -i any -n 'port 3306' -w mysql_traffic.pcapКатегории: MySQL, MariaDB etc.