mysql: xem tất cả các kết nối mở đến một cơ sở dữ liệu nhất định?


123

Với quyền quản trị im mysql, làm cách nào tôi có thể xem tất cả các kết nối đang mở tới một db cụ thể trong máy chủ của mình?

Câu trả lời:


169

Lệnh là

SHOW PROCESSLIST

Thật không may, nó không có thông số thu hẹp . Nếu bạn cần chúng, bạn có thể làm điều đó từ dòng lệnh:

mysqladmin processlist | grep database-name

23
mysqladmin -i 1 processlistđể làm mới đầu ra mỗi giây.
chanux

5
nếu bạn cần xác thựcmysqladmin --user=[USERNAME] --password=[PASSWORD] -i 1 processlist
Tom Jenkinson

2
@TomJenkinson Tôi thường không sử dụng nó bởi vì tôi không muốn mật khẩu để xuất hiện trong lịch sử dòng lệnh hoặc trong danh sách quá trình (ps aux)
David Rabinowitz

Là một thay thế cho @chanux, với đầu ra rõ ràng hơn một chút imhowatch -n1 mysqladmin processlist
Josiah

64

Bạn cũng có thể sử dụng:

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)

Hãy thoải mái sử dụng Mysql-server-status-variable hoặc Too-many-connection-problem


2
Nó không phân biệt chữ hoa chữ thường, Tại sao %onn%thay vì %conn%?
Pacerier

Chắc chắn bạn có thể sử dụng% conn% thay vì% onn%. Và có, chủ yếu là nó không phân biệt chữ hoa chữ thường. Đối với phân biệt chữ hoa chữ thường, vui lòng xem dev.mysql.com/doc/refman/5.0/en/…
Wiseland

1
Điều này hiển thị dữ liệu thống kê / lịch sử. Câu hỏi là về các kết nối hiện đang mở.
Matthew

32

Điều đó sẽ thực hiện thủ thuật cho các phiên bản MySQL mới nhất:

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


3
Đây là cách duy nhất đúng, ngoài cách đã chọn, có thể được thực hiện bằng cách sử dụng SQL thay vì mysqladmin.
dresende

2
Cảm ơn, đây là câu trả lời tôi muốn.

1
Câu trả lời này rất hữu ích, hiển thị tất cả các kết nối và các truy vấn của nó, có thể giúp ích rất nhiều trong trường hợp của tôi.
Hammad Khan

10

Bạn có thể gọi lệnh hiển thị trạng thái MySQL

hiển thị trạng thái như 'Conn%';

Để biết thêm thông tin, hãy đọc Hiển thị các kết nối cơ sở dữ liệu đang mở


3
Xin lỗi, nhưng giải pháp này chỉ hiển thị một giá trị. Tôi thích lệnh "hiển thị trạng thái như '% onn%';" trong cùng một trang web được giới thiệu.
Raul Luna

@RaulLuna, Dù sao nó cũng không phân biệt chữ hoa chữ thường, Tại sao %onn%thay vì %conn%?
Pacerier

@Pacerier Còn hơn thế nữa: nó chỉ trong trường hợp từ "kết nối" xuất hiện như một phần của một từ lớn hơn (ví dụ: max_used_connections). Tất nhiên, bạn có thể sử dụng trạng thái hiển thị như '% conn%'
Raul Luna

@RaulLuna, Nếu từ "kết nối" xuất hiện như một phần của từ lớn hơn, cả hai %onn%%conn%sẽ vẫn hoạt động. Không khác nhau.
Pacerier

1
tại sao điều này được đánh dấu? nó không hiển thị các kết nối đang mở hiện tại.
James


3

Trong MySql, truy vấn sau sẽ hiển thị tổng số kết nối đang mở:

show status like 'Threads_connected';

2

Nếu bạn đang chạy hệ thống * nix, hãy xem xét mytop .

Để giới hạn kết quả cho một cơ sở dữ liệu, hãy nhấn "d" khi nó đang chạy, sau đó nhập tên cơ sở dữ liệu.


Không phải ứng dụng này cũng đang sử dụng show processlistnội bộ sao?
Pacerier

Tôi tin rằng nó có. mytop chỉ trình bày thông tin một cách gọn gàng với các tùy chọn lọc. Tôi đã sử dụng rất nhiều trong quá khứ trong khi phân tích các vấn đề về hiệu suất. Ngoài ra, trong những trường hợp khẩn cấp, đăng nhập vào máy, chạy mytop và xem ngay những gì đang diễn ra sẽ nhanh hơn. Giống như chạy "top".
Pryo

Bằng cách sử dụng nhiều thành phần hơn, bạn đang để lộ ra nhiều lỗi hơn. Kể từ khi show processlistsản lượng của thỏa mãn, tại sao bạn sẽ cần mytop?
Pacerier

2
Tại sao sử dụng "top" khi "ps aux" thỏa mãn?
Pryo

-1

Trong trình duyệt truy vấn, nhấp chuột phải vào cơ sở dữ liệu và chọn danh sách xử lý


Điều này dành riêng cho một khách hàng.
Nino Škopac
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.