mysql: melihat semua koneksi terbuka ke database tertentu?

123

Dengan izin administratif im mysql, bagaimana saya bisa melihat semua koneksi terbuka ke db tertentu di server saya?

flybywire
sumber

Jawaban:

169

Perintahnya adalah

SHOW PROCESSLIST

Sayangnya, tidak ada parameter penyempitan . Jika Anda membutuhkannya, Anda dapat melakukannya dari baris perintah:

mysqladmin processlist | grep database-name
David Rabinowitz
sumber
23
mysqladmin -i 1 processlistuntuk menyegarkan keluaran setiap detik.
chanux
5
jika Anda perlu mengautentikasimysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Tom Jenkinson
2
@TomJenkinson Saya biasanya tidak menggunakannya karena saya tidak ingin kata sandi muncul dalam riwayat baris perintah atau dalam daftar proses (ps aux)
David Rabinowitz
Sebagai alternatif dari @chanux, dengan keluaran imho yang sedikit lebih bersihwatch -n1 mysqladmin processlist
Josiah
64

Anda juga bisa menggunakan:

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)

Jangan ragu untuk menggunakan variabel-status-server-Mysql atau Terlalu-banyak-koneksi-masalah

wiseland
sumber
2
Ini tidak peka huruf besar / kecil, Mengapa %onn%bukan %conn%?
Pacerier
Tentu Anda dapat menggunakan% conn% daripada% onn%. Dan ya, sebagian besar tidak peka huruf besar / kecil. Untuk sensitivitas kasus, silakan lihat dev.mysql.com/doc/refman/5.0/en/…
wiseland
1
Ini menunjukkan data statistik / historis. Pertanyaannya adalah tentang koneksi yang sedang terbuka.
Matius
32

Itu harus melakukan trik untuk versi MySQL terbaru:

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

Vadym Tyemirov
sumber
3
Ini adalah satu-satunya yang benar, selain yang dipilih, yang dapat dilakukan dengan menggunakan SQL, bukan mysqladmin.
dresende
2
Terima kasih, inilah jawaban yang saya inginkan.
1
Jawaban ini sangat membantu, tunjukkan semua koneksi dan pertanyaannya, yang dapat membantu banyak waktu dalam kasus saya.
Hammad Khan
10

Anda dapat menjalankan perintah MySQL show status

tunjukkan status seperti 'Conn%';

Untuk informasi selengkapnya, baca Memperlihatkan koneksi database terbuka

adatapost
sumber
3
Maaf, solusi ini hanya menunjukkan satu nilai. Saya lebih suka perintah "tampilkan status seperti '% onn%';" yang ada di halaman web rujukan yang sama.
Raul Luna
@RaulLuna, Bagaimanapun juga, ini tidak peka huruf besar / kecil, Mengapa %onn%alih-alih %conn%?
Pacerier
@Pacerier Ini lebih dari itu: ini hanya dalam kasus kata "koneksi" muncul sebagai bagian dari kata yang lebih besar (misalnya max_used_connections). Tentu saja Anda dapat menggunakan status acara seperti '% conn%'
Raul Luna
@RaulLuna, Jika kata "koneksi" muncul sebagai bagian dari kata yang lebih besar, keduanya %onn%dan %conn%akan tetap berfungsi. Tidak ada perbedaan.
Pacerier
1
mengapa ini ditandai? itu tidak menunjukkan koneksi terbuka saat ini.
Yakobus
3

SQL: tampilkan daftar proses lengkap;

Inilah yang dilakukan MySQL Workbench.

justAMySQL_starter
sumber
3

Di MySql, kueri berikut akan menunjukkan jumlah total koneksi terbuka:

show status like 'Threads_connected';
Ayan
sumber
2

Jika Anda menjalankan sistem * nix, pertimbangkan juga mytop .

Untuk membatasi hasil ke satu database, tekan "d" saat berjalan lalu ketik nama database.

Pryo
sumber
Bukankah aplikasi ini juga menggunakan secara show processlistinternal?
Pacerier
Saya yakin begitu. mytop hanya menyajikan informasi dengan rapi dengan opsi filtering. Saya telah memanfaatkannya dengan baik di masa lalu saat menganalisis masalah kinerja. Juga, lebih cepat dalam keadaan darurat untuk masuk ke mesin, menjalankan mytop dan segera melihat apa yang terjadi. Mirip seperti menjalankan "top".
Pryo
Dengan menggunakan lebih banyak komponen, Anda mengekspos diri Anda ke lebih banyak bug. Karena show processlistkeluarannya memuaskan, mengapa Anda membutuhkannya mytop?
Pacerier
2
Mengapa menggunakan "top" ketika "ps aux" memuaskan?
Pryo
-1

Di browser kueri klik kanan pada database dan pilih daftar proses

Kanagaraj M
sumber
Ini khusus untuk klien.
Nino Škopac