Nếu bạn đang chạy cơ sở dữ liệu MySQL trên máy chủ lưu trữ chuyên dụng của mình, bạn có thể muốn thấy trạng thái của nó theo các quy trình mà nó hiện đang chạy. Điều này sẽ cung cấp cho bạn ý tưởng về tải trên máy chủ cơ sở dữ liệu, điều này rất quan trọng nếu bạn có một cơ sở dữ liệu lớn hoặc một số cơ sở dữ liệu được phục vụ trên máy chủ của bạn. Nó cũng hữu ích để giúp xác định các vấn đề chính xác với các truy vấn đang chạy trên máy chủ.
Bạn sẽ cần phải có quyền truy cập gốc vào máy chủ để sử dụng một trong hai báo cáo này.
Bạn có thời gian để đọc hướng dẫn đầy đủ của chúng tôi về cách hiển thị các quy trình MySQL không? Xem video đi bộ của chúng tôi.
Sử dụng WHM để hiển thị các quy trình MySQL
- Đăng nhập vào WHM
Nhấp vào hiển thị các quy trình MySQL trong menu ở bên trái.Show MySQL Processes in the menu at left.
Bạn sẽ thấy bảng hiển thị các quy trình hiện có cho máy chủ lưu trữ chuyên dụng của bạn. Các mục này được chi tiết dưới đây:
Đây là số nhận dạng của quá trình chạy |
Người dùng chạy quy trình trong cơ sở dữ liệu |
Cơ sở dữ liệu đang được sử dụng với quy trình |
Lệnh hiện đang được thực thi trong quá trình |
Thời gian thực hiện theo quy trình |
Trạng thái của quá trình |
Thông tin về quy trình |
Bạn cũng có thể giết các quy trình MySQL.
Nếu bạn quen thuộc với việc sử dụng MySQL trong dòng lệnh, bạn cũng có thể nhận báo cáo về các quy trình chạy ở đó. Các hướng dẫn sau đây cho thấy cách truy cập nó. Lưu ý rằng bạn sẽ cần quyền truy cập phù hợp trong SSH để sử dụng lệnh MySQL cho báo cáo này.
- Đăng nhập vào SSH.
- Nhập MySQL để vào dòng lệnh MySQL.MYSQL to get into the mysql command line.
Loại hiển thị danh sách quy trình; Để xem các quy trình hiện tại trên máy chủ.show processlist; in order to see current processes on the server.
Bạn có thấy rằng bạn chỉ cần có thời gian để tự quản lý máy chủ của mình không? Lưu trữ VPS được quản lý của chúng tôi là giải pháp hoàn hảo.
Nhà văn giám sát Arnel I Content Writer I
Là một nhà văn cho việc lưu trữ inmotion, Arnel luôn nhằm chia sẻ thông tin hữu ích và cung cấp kiến thức sẽ giúp giải quyết các vấn đề và hỗ trợ trong việc đạt được các mục tiêu. Anh ấy cũng tích cực với các nhóm và sự kiện cộng đồng địa phương WordPress từ năm 2004.
Thêm các bài viết của Arnel
Trang chủ / Hiển thị các truy vấn đang chạy trong MySQLShowing running queries in MySQL MySQL có một câu lệnh gọi là "Danh sách xử lý hiển thị" để hiển thị cho bạn các truy vấn đang chạy trên máy chủ MySQL của bạn. Điều này có thể hữu ích để tìm hiểu những gì đang diễn ra nếu có một số truy vấn lớn, dài tiêu thụ nhiều chu kỳ CPU hoặc nếu bạn gặp lỗi như "quá nhiều kết nối". Cú pháp đơn giản là: sẽ xuất ra một cái gì đó dọc theo các dòng sau: Cột "Thông tin" hiển thị truy vấn đang được thực thi hoặc null nếu hiện tại không có gì xảy ra. Khi chạy "Show ProcessList", nó sẽ chỉ hiển thị 100 ký tự đầu tiên của truy vấn. Để hiển thị toàn bộ truy vấn chạy "Hiển thị toàn bộ quy trình" thay thế. Chạy lệnh trên từ giao diện dòng lệnh MySQL với a; Phân đoạn có thể gây khó khăn cho việc đọc đầu ra, đặc biệt là nếu các truy vấn dài và kéo dài nhiều dòng. Thay vào đó, sử dụng D Delimiter sẽ hiển thị dữ liệu theo định dạng dễ đọc hơn, mặc dù nó tiêu thụ nhiều hàng hơn trong thiết bị đầu cuối của bạn. Điều này rất hữu ích khi chạy "Hiển thị toàn bộ quy trình" bởi vì một số truy vấn được hiển thị có thể khá dài. Nếu bạn đang chạy như một người dùng thông thường không có đặc quyền "quy trình", thì "Hiển thị Danh sách xử lý" sẽ chỉ hiển thị các quy trình mà chính bạn hiện đang chạy. Nếu người dùng có đặc quyền quy trình thì họ có thể nhìn thấy mọi thứ.show processlist;
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+
| 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist |
| 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*]
from orders_header h
inner join orders_detail d on h.ord |
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+
2 rows in set [0.00 sec]
mysql> show processlistG
*************************** 6. row ***************************
Id: 708163
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: show processlist
*************************** 7. row ***************************
Id: 708174
User: test
Host: localhost
db: test
Command: Query
Time: 3
State: Copying to tmp table
Info: select dist.name, dist.filename, count[*]
from orders_header h
inner join orders_detail d on h.ord
2 rows in set [0.00 sec]
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+
| 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist |
| 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*]
from orders_header h
inner join orders_detail d on h.ord |
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+
2 rows in set [0.00 sec]
0
Cách nhanh nhất để xem các truy vấn MySQL/MARIADB trực tiếp là sử dụng trình gỡ lỗi. Trên Linux, bạn có thể sử dụng
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ 2 rows in set [0.00 sec]0, ví dụ:
sudo strace -e trace=read,write -s 2000 -fp $[pgrep -nf mysql] 2>&1
Vì có rất nhiều ký tự đã thoát ra, bạn có thể định dạng đầu ra của Strace bằng đường ống [chỉ cần thêm
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ 2 rows in set [0.00 sec]2 giữa hai lớp lót này] ở trên vào lệnh sau:
grep --line-buffered -o '".\+[^"]"' | grep --line-buffered -o '[^"]*[^"]' | while read -r line; do printf "%b" $line; done | tr "\r\n" "\275\276" | tr -d "[:cntrl:]" | tr "\275\276" "\r\n"
Vì vậy, bạn sẽ thấy các truy vấn SQL khá sạch sẽ không có thời gian, mà không cần chạm vào các tệp cấu hình.
Rõ ràng điều này sẽ không thay thế cách cho phép ghi nhật ký tiêu chuẩn, được mô tả bên dưới [liên quan đến việc tải lại máy chủ SQL].
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+
| 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist |
| 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*]
from orders_header h
inner join orders_detail d on h.ord |
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+
2 rows in set [0.00 sec]
3
Sử dụng các đầu dò MySQL để xem các truy vấn MySQL trực tiếp mà không cần chạm vào máy chủ. Kịch bản ví dụ:
#!/usr/sbin/dtrace -q
pid$target::*mysql_parse*:entry /* This probe is fired when the execution enters mysql_parse */
{
printf["Query: %s\n", copyinstr[arg1]];
}
Lưu tập lệnh trên vào một tệp [như
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ 2 rows in set [0.00 sec]4] và chạy:
pfexec dtrace -s watch.d -p $[pgrep -x mysqld]
Tìm hiểu thêm: Bắt đầu với Dtraces MySQL
Gibbs Mysql Spylass
Xem câu trả lời này.
Nhật ký
Dưới đây là các bước hữu ích cho đề xuất phát triển.
Thêm các dòng này vào
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ 2 rows in set [0.00 sec]5 hoặc toàn cầu
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ 2 rows in set [0.00 sec]6:
[mysqld]
general_log=1
general_log_file=/tmp/mysqld.log
Đường dẫn:
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ 2 rows in set [0.00 sec]7 hoặc
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ 2 rows in set [0.00 sec]8 cũng có thể hoạt động tùy thuộc vào quyền tệp của bạn.
Sau đó khởi động lại MySQL/Mariadb của bạn bằng [tiền tố với
+--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ | 708163 | root | localhost | NULL | Query | 0 | NULL | show processlist | | 708174 | test | localhost | test | Query | 2 | Copying to tmp table | select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord | +--------+--------+-----------+--------+---------+------+----------------------+------------------------------------------------------------------------------------------------------+ 2 rows in set [0.00 sec]9 nếu cần thiết]:
killall -HUP mysqld
Sau đó kiểm tra nhật ký của bạn:
tail -f /tmp/mysqld.log
Sau khi kết thúc, thay đổi
mysql> show processlistG *************************** 6. row *************************** Id: 708163 User: root Host: localhost db: NULL Command: Query Time: 0 State: NULL Info: show processlist *************************** 7. row *************************** Id: 708174 User: test Host: localhost db: test Command: Query Time: 3 State: Copying to tmp table Info: select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord 2 rows in set [0.00 sec]0 thành
mysql> show processlistG *************************** 6. row *************************** Id: 708163 User: root Host: localhost db: NULL Command: Query Time: 0 State: NULL Info: show processlist *************************** 7. row *************************** Id: 708174 User: test Host: localhost db: test Command: Query Time: 3 State: Copying to tmp table Info: select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord 2 rows in set [0.00 sec]1 [vì vậy bạn có thể sử dụng nó trong tương lai], sau đó xóa tệp và khởi động lại SQL Server:
mysql> show processlistG *************************** 6. row *************************** Id: 708163 User: root Host: localhost db: NULL Command: Query Time: 0 State: NULL Info: show processlist *************************** 7. row *************************** Id: 708174 User: test Host: localhost db: test Command: Query Time: 3 State: Copying to tmp table Info: select dist.name, dist.filename, count[*] from orders_header h inner join orders_detail d on h.ord 2 rows in set [0.00 sec]2.
Làm thế nào tôi có thể xem những câu hỏi nào đang chạy?
Bạn có thể chạy dưới đây truy vấn để có được tất cả các thông tin cần thiết:..
lựa chọn..
r.session_id,.
S.tên đăng nhập,.
c.client_net_address,.
S.host_name,.
S.tên chương trình,.
st.văn bản, s.trạng thái..
từ sys.DM_EXEC_REQUESTS R ..
Làm cách nào để kiểm tra các truy vấn cập nhật trong MySQL?
Cập nhật lệnh Cập nhật MySQL Cập nhật `Table_Name` là lệnh cho MySQL cập nhật dữ liệu trong bảng.Đặt `cột_name` =` new_value 'là tên và giá trị của các trường bị ảnh hưởng bởi truy vấn cập nhật.Lưu ý, khi cài đặt các giá trị cập nhật, các loại dữ liệu chuỗi phải có trong các trích dẫn đơn.UPDATE `table_name` is the command that tells MySQL to update the data in a table . SET `column_name` = `new_value' are the names and values of the fields to be affected by the update query. Note, when setting the update values, strings data types must be in single quotes.