Назад | Перейти на главную страницу

Как узнать, осуществляется ли доступ к базе данных MySQL?

Есть ли какой-нибудь удобный способ узнать, какие пользователи обращаются к базе данных MySQL? В идеале у меня было бы какое-то приложение, упрощающее эту задачу, но другие методы подойдут.

Если нет стандартного определения, я бы согласился «запрашивал базу данных за последние 30 минут».

Как насчет запроса:

SHOW FULL PROCESSLIST

Это покажет вам подключения к базе данных, с каким пользователем они вошли в систему, состояние подключения и любую текущую команду.

Из командной строки (при условии, что в вашем домашнем каталоге есть папка .my.cnf),

echo Total\ Connections:; mysqladmin processlist | tail -n +4 | head -n -1 | grep Sleep | wc -l ; echo ; echo Current\ Users: ; mysqladmin processlist | tail -n +4 | head -n -1 | grep Sleep | awk '{print $4}' | sort | uniq

Это дает хорошую распечатку уникальных пользователей и общего количества подключений.