Проверьте подключение mysql по количеству пользователей, подключенных к базе данных X за последние 2 недели или более.

Я пытался получить количество пользователей, подключенных к определенной базе данных (прямо сейчас и за последние несколько недель), но я только подключаю пользователей прямо сейчас:

      select a.processlist_db
     , a.processlist_user
     , count(*) 
  from performance_schema.threads a 
  join mysql.general_log b 
    on a.thread_id = b.thread_id
 group
    by a.processlist_db
     , a.processlist_user;

Я попытался использовать performance_schema, чтобы подключить пользователей, используя thread_id в качестве точки привязки к общему журналу в базе данных mysql, но это только подключает пользователей прямо сейчас или вообще не подключает пользователей.

      select  b.user_host
     , a.current_schema
     , b.event_time
     , count(b.event_time) 
  from events_statements_current a
  join mysql.general_log b 
 where a.thread_id = b.thread_id 
 group 
    by a.user_host
     , a.current_scheam
     , b.event_time; 

Я попытался найти таблицы, разделяющие столбцы thread_id и current_schema, и нашел следующие:

      events_statements_current     
events_statements_history     
events_statements_history_long

Я заметил, что некоторые таблицы в peformance_schema либо не возвращают никакого значения, например, events_transaction_current/history, как их активировать?

какие параметры необходимо активировать в первую очередь, чтобы эти таблицы хранили данные?

Я также заметил, что когда предыдущие запросы что-то возвращают, иногда у меня есть нулевые значения для processlist_db и processlist_user, почему это происходит? и что это значит?

Спасибо

0 ответов

Другие вопросы по тегам