Mysql> hủy tất cả các kết nối từ người dùng
Các quy trình MySQL không cần thiết có thể gây ra các vấn đề về hiệu suất trên hệ thống của bạn. Theo thời gian, các luồng đang hoạt động chồng chất và làm ngưng trệ máy chủ của bạn, ngăn người dùng truy cập vào các bảng và thực hiện các yêu cầu Show Khi mức sử dụng tài nguyên quá cao, bạn có thể cần phải tắt các tiến trình MySQL. Hướng dẫn này sẽ chỉ cho bạn cách xác định các quy trình MySQL và hủy một quy trình điều kiện tiên quyết
Cách tìm danh sách quy trình MySQLTrước khi bạn có thể định vị một tiến trình và giết nó, bạn phải truy cập máy chủ MySQL cục bộ hoặc từ xa. Để đăng nhập vào tài khoản cục bộ MySQL của bạn với quyền root, hãy mở terminal và nhập
Nhập mật khẩu khi được nhắc. Khi trình bao MySQL tải, dấu nhắc hiển thị Để định vị quá trình cần hủy hoặc chấm dứt, hãy tải danh sách có tất cả các phiên đang hoạt động.
Đầu ra hiển thị các thông tin sau Bạn có thể có nhiều mục hơn trong danh sách của mình. Lưu ý 0 giúp bạn xác định các quy trình chạy lâu nhất. Đó thường là những thứ bạn muốn chấm dứt trướcLàm thế nào để giết quá trình MySQLĐể hủy một phiên MySQL khỏi danh sách, hãy sử dụng truy vấn 1 theo sau chuỗi Id mà bạn đã lưu ý trước đó
Shell hiển thị trạng thái truy vấn và số lượng hàng bị ảnh hưởng. “Truy vấn OK, 0 hàng bị ảnh hưởng (0. 06 giây). ” Truy vấn này kết thúc kết nối đến cơ sở dữ liệu, bao gồm tất cả các hoạt động liên quan đến kết nối Hãy nhớ rằng người dùng phải có đặc quyền thích hợp để có thể giết một tiến trình Cách tiêu diệt tất cả các quy trình MySQL cho một người dùng cụ thểMySQL không có một lệnh duy nhất để giết tất cả các quy trình Để hủy tất cả các quy trình cho một người dùng cụ thể, hãy sử dụng 1 để tạo tệp có danh sách các luồng và câu lệnh. Trong trường hợp của chúng tôi, chúng tôi đã nhập root với tư cách là người dùng. Để chỉ định người dùng khác, hãy thay thế root bằng tên người dùng mong muốn
Truy vấn này đã tạo một tệp có tên process_list. txt. Bạn có thể chỉnh sửa tên theo ý thích của bạn. Mở tệp và xem lại xem đó có phải là các quy trình bạn muốn hủy không. Khi bạn đã sẵn sàng, hãy nhập
Bạn có thể thêm điều kiện vào truy vấn để thu hẹp danh sách các quy trình trong tệp đầu ra. Ví dụ: thêm 2 vào lệnh để chỉ bao gồm các quy trình có giá trị thời gian cao hơn 1000
Sự kết luận Hướng dẫn này đã vạch ra cách dễ nhất để tìm và tiêu diệt các tiến trình MySQL. Đảm bảo rằng bạn luôn kiểm tra kỹ xem bạn đang kết thúc quy trình nào trước khi chạy truy vấn MySQL Tôi thường xuyên gặp phải tình huống cần ngắt kết nối trên máy chủ MySQL – ví dụ: hàng trăm phiên bản của một số truy vấn không hợp lệ đang chạy, khiến máy chủ không sử dụng được. Nhiều người có các tập lệnh đặc biệt có thể lấy người dùng, máy chủ nguồn hoặc truy vấn làm tham số và thực hiện hành động. Ngoài ra còn có một cách để làm điều đó chỉ bằng cách sử dụng MySQL với một vài lệnh Vỏ bọc1 2 3 4 5 6 7 8 9 10 11 12 13 14 mysql> select concat('KILL ',id,';') from information_schema.processlist nơi người dùng = 'root'; +---------------------------------+ | concat('KILL ',id,';') | +---------------------------------+ | GIẾT 3101; . | GIẾT 2946; . +---------------------------------+ 2 hàng trong bộ (0.00 giây)
mysql> select concat('KILL ',id,';') from information_schema.processlist nơi người dùng = 'root' into outfile '/tmp/a.txt'; Truy vấn OK, 2 hàng affected (0.00 giây)
mysql> nguồn / tmp/a.txt; Truy vấn OK, 0 hàng affected (0.00 giây) Nói chung, đây là một cách tiếp cận rất hiệu quả mà tôi sử dụng trong rất nhiều trường hợp để tạo một tập hợp các câu lệnh SQL bằng truy vấn SQL và sau đó thực thi nó Sẽ thật tuyệt nếu MySQL có cách nào đó để “eval” – thực thi tập kết quả của truy vấn dưới dạng các lệnh SQL. Điều này sẽ tránh được yêu cầu sử dụng tệp tạm thời, v.v. Điều gì khiến MySQL có quá nhiều kết nối?Lỗi “Quá nhiều kết nối” của MySQL xảy ra khi nhiều truy vấn được gửi tới cơ sở dữ liệu MySQL hơn mức có thể xử lý . Có thể khắc phục lỗi bằng cách đặt số lượng kết nối tối đa mới trong tệp cấu hình hoặc trên toàn cầu.
Làm thế nào để giết quá trình MySQL trong thiết bị đầu cuối?Đăng nhập vào DB; . Select the process id and run a command KILL |