mysql: побачити всі відкриті підключення до даної бази даних?


123

Як адміністративні дозволи im mysql, як я можу бачити всі відкриті підключення до певного db на своєму сервері?

Відповіді:


169

Команда є

SHOW PROCESSLIST

На жаль, він не має параметрів звуження . Якщо вони вам потрібні, ви можете зробити це з командного рядка:

mysqladmin processlist | grep database-name

23
mysqladmin -i 1 processlistоновлювати висновок щосекунди.
chanux

5
якщо вам потрібно пройти автентифікаціюmysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Том Дженкінсон

2
@TomJenkinson я зазвичай не користуюся ним, тому що я не хочу, щоб пароль відображався в історії командного рядка або в списку процесів (ps aux)
David Rabinowitz

Як альтернатива @chanux, з дещо більш чистим виходом imhowatch -n1 mysqladmin processlist
Josiah

64

Ви також можете використовувати:

mysql> show status like '%onn%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 0     |
| Connections              | 303   |
| Max_used_connections     | 127   |
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 127   |
+--------------------------+-------+
7 rows in set (0.01 sec)

Сміливо використовуйте змінні Mysql-сервер-статус або Занадто багато-підключень-проблема


2
Це все одно нечутливий випадок, чому %onn%замість цього %conn%?
Pacerier

Звичайно, ви можете використовувати% conn% замість% onn%. І так, здебільшого це справа нечутлива. Про чутливість до справи, будь ласка, дивіться dev.mysql.com/doc/refman/5.0/en/…
mudland

1
Це показують статистичні / історичні дані. Питання стосується відкритих на даний момент з'єднань.
Метью

32

Це повинно зробити трюк для найновіших версій MySQL:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE DB = "elstream_development";


3
Це єдине правильне, крім обраного, яке можна зробити за допомогою SQL замість mysqladmin.
dresende

2
Дякую, це відповідь, яку я хотів.

1
Ця відповідь дуже корисна, покажіть усі підключення та її запити, які можуть допомогти великому часу в моєму випадку.
Хаммад Хан

10

Ви можете викликати команду показу стану MySQL

показати статус типу "Conn%";

Для отримання додаткової інформації читайте Показати відкриті підключення до бази даних


3
Вибачте, але це рішення показує лише одне значення. Я віддаю перевагу команді "показати статус типу"% onn% ";" який знаходиться на тій же згадуваній веб-сторінці.
Рауль Луна

@RaulLuna, це все одно нечутливе до справи, чому %onn%замість цього %conn%?
Pacerier

@Pacerier Більше того: це лише на випадок, якщо слово "з'єднання" з'явиться як частина більшого слова (наприклад, max_used_connections). Звичайно, ви можете використовувати статус шоу типу "% conn%"
Рауль Луна,

@RaulLuna, Якщо слово "з'єднання" з'явиться як частина більшого слова, і те, %onn%і %conn%все ще працюватиме. Без різниці.
Pacerier

1
чому це позначено? він не показує поточні відкриті з'єднання.
Джеймс


3

У MySql наступний запит показує загальну кількість відкритих з'єднань:

show status like 'Threads_connected';

2

Якщо ви працюєте з системою * nix, також врахуйте mytop .

Щоб обмежити результати однією базою даних, натисніть "d", коли вона працює, а потім введіть ім'я бази даних.


Чи цей додаток також не використовується show processlistвнутрішньо?
Pacerier

Я вірю, що так і є. mytop просто акуратно подає інформацію з параметрами фільтрації. У минулому я багато корисно використовував це, аналізуючи проблеми ефективності. Крім того, у надзвичайних ситуаціях швидше увійти до машини, запустити mytop і відразу побачити, що відбувається. Начебто бігати «зверху».
Пріо

Використовуючи більше компонентів, ви піддаєте себе більшої кількості помилок. Оскільки show processlistзадоволення результатів виробництва, навіщо вам це потрібно mytop?
Pacerier

2
Навіщо використовувати "верх", коли "ps aux" задовольняє?
Пріо

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.