mysql: belirli bir veritabanına yönelik tüm açık bağlantıları görüyor musunuz?


123

Yönetimsel izinler im mysql ile sunucumdaki belirli bir veritabanına yönelik tüm açık bağlantıları nasıl görebilirim?

Yanıtlar:


169

Komut

SHOW PROCESSLIST

Ne yazık ki, daraltma parametresi yok . İhtiyacınız olursa komut satırından yapabilirsiniz:

mysqladmin processlist | grep database-name

23
mysqladmin -i 1 processlistçıktıyı her saniye yenilemek için.
chanux

5
doğrulamanız gerekiyorsamysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Tom Jenkinson

2
@TomJenkinson Genellikle bunu kullanmıyorum çünkü şifrenin komut satırı geçmişinde veya işlem listesinde (ps aux) görünmesini istemiyorum
David Rabinowitz

@Chanux'a alternatif olarak, biraz daha temiz bir çıktı imhowatch -n1 mysqladmin processlist
Josiah

64

Ayrıca şunları kullanabilirsiniz:

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-server-status-değişkenlerini veya Too-many-connection-problemini kullanmaktan çekinmeyin


2
Zaten büyük / küçük harf duyarlı %onn%değil , Neden yerine %conn%?
Pacerier

Elbette% onn% yerine% conn% kullanabilirsiniz. Ve evet, çoğunlukla büyük / küçük harf duyarlı değildir. Büyük / küçük harf duyarlılığı için lütfen dev.mysql.com/doc/refman/5.0/en/…
wiseland

1
Bu istatistiksel / geçmiş verileri gösterir. Soru şu anda açık olan bağlantılarla ilgili.
Matthew

32

Bu, en yeni MySQL sürümleri için hile yapmalı:

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


3
Bu, seçilenin dışında, SQL yerine SQL kullanılarak yapılabilen tek doğrudur mysqladmin.
dresende

2
Teşekkürler, istediğim cevap bu.

1
Bu cevap çok yararlı, tüm bağlantıları ve sorgularını göster, bu benim durumumda büyük zamana yardımcı olabilir.
Hammad Khan

10

MySQL show status komutunu çalıştırabilirsiniz

'Conn%' gibi durumu gösterin;

Daha fazla bilgi için Açık veritabanı bağlantılarını göster bölümünü okuyun


3
Maalesef bu çözüm yalnızca bir değer gösteriyor. "Durumu '% onn%' gibi göster" komutunu tercih ederim; aynı yönlendirilen web sayfasındadır.
Raul Luna

@RaulLuna, Bu zaten büyük / küçük harf duyarlı %onn%değil , Neden yerine %conn%?
Pacerier

@Pacerier Bundan daha fazlası: sadece "bağlantı" kelimesinin daha büyük bir kelimenin parçası olarak görünmesi durumunda (örneğin, max_used_connections). Elbette '% conn%' gibi şov durumunu kullanabilirsiniz
Raul Luna

@RaulLuna, "bağlantı" sözcüğü daha büyük bir kelimenin parçası olarak görünür, hem ederse %onn%ve %conn%çalışma hala olacaktır. Fark yok.
Pacerier

1
bu neden işaretlendi? mevcut açık bağlantıları göstermez.
James


3

MySql'de, aşağıdaki sorgu toplam açık bağlantı sayısını gösterecektir:

show status like 'Threads_connected';

2

Bir * nix sistemi çalıştırıyorsanız, mytop'u da düşünün .

Sonuçları tek bir veritabanıyla sınırlandırmak için, çalışırken "d" ye basın ve veritabanı adını yazın.


Bu uygulama show processlistdahili olarak da kullanılmıyor mu?
Pacerier

Ben öyle olduğuna inanıyorum. mytop, bilgileri filtreleme seçenekleriyle düzgün bir şekilde sunar. Geçmişte performans sorunlarını analiz ederken bunu çok iyi kullandım. Ayrıca acil durumlarda bir makinede oturum açmak, mytop'ı çalıştırmak ve neler olduğunu hemen görmek daha hızlıdır. "Zirveye" koşmak gibi.
Pryo

Daha fazla bileşen kullanarak, kendinizi daha fazla hataya maruz bırakırsınız. Yana show processlistbireyin çıktı satisfices, neden gerekir mytopiçin?
Pacerier

2
"Ps aux" tatmin edici olduğunda neden "top" kullanalım?
Pryo

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.