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?

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

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


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";


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


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

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

show status like 'Threads_connected';

2

Jika Anda menjalankan sistem * nix, pertimbangkan juga mytop .

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


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.