Как просмотреть полный запрос из SHOW PROCESSLIST

Когда я выдаю запрос SHOW PROCESSLIST, в столбце info возвращаются только первые 100 символов запущенного SQL-запроса.

Можно ли изменить конфигурацию Mysql или выдать другой запрос для просмотра полного запроса (запросы, которые я ищу, длиннее 100 символов)

Ответ 1

SHOW FULL PROCESSLIST

Если вы не используете FULL, , только первые 100 символов каждого оператора отображаются в поле Info.

При использовании phpMyAdmin вы также должны нажать кнопку "Полные тексты" ( "← T →" в верхнем левом углу таблицы результатов), чтобы увидеть неиспользованные результаты.

Ответ 2

Показать список процессов извлекает информацию из другой таблицы. Вот как вы можете вытащить данные и посмотреть столбец "INFO", который содержит весь запрос:

select * from INFORMATION_SCHEMA.PROCESSLIST where db = 'somedb';

Вы можете добавить любое условие или игнорировать на основе вашего требования.

Результат запроса приводится как:

+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
| ID    | USER | HOST            | DB     | COMMAND | TIME | STATE     | INFO                                                     |
+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
|     5 | ssss | localhost:41060 | somedb | Sleep   |    3 |           | NULL                                                     |
| 58169 | root | localhost       | somedb | Query   |    0 | executing | select * from sometable where tblColumnName = 'someName' |

Ответ 3

Я только что прочитал в документации MySQL, что SHOW FULL PROCESSLIST по умолчанию только перечисляет потоки из вашего текущего пользовательского соединения.

Цитата из документации MySQL SHOW FULL PROCESSLIST:

Если у вас есть привилегия PROCESS, вы можете видеть все потоки.

Итак, вы можете включить столбец Process_priv в таблице mysql.user. Не забудьте выполнить FLUSH PRIVILEGES впоследствии:)

Ответ 4

это решение работало для меня:

  • открыть терминал и войти на сервер mysql
  • открыть новый терминал и перезапустить службу mysqld (не закрывать первый терминал)
  • при первом запуске терминала "ведомый останов"
  • при первом запуске терминала "запуск подчиненного устройства"
  • вы увидите, что slave/master начнет работать нормально, без ошибок.