MySQL đóng kết nối

Bảo trì cơ sở dữ liệu hoặc máy chủ thường được thực hiện bởi quản trị viên cơ sở dữ liệu vào ban đêm. Tuy nhiên, những thói quen này đôi khi bị chặn bởi các truy vấn chạy lâu hoặc các ứng dụng treo trên ổ khóa lâu hơn dự kiến

Thông thường, ứng dụng được ưu tiên và các quy trình bảo trì thường bị hủy để không can thiệp vào ứng dụng. Nhưng đôi khi xảy ra trường hợp bạn cần hủy một truy vấn MySQL tốn thời gian và chưa hoàn thành trong một thời gian nhất định. Trong trường hợp này, bạn có thể cần một cách nhanh chóng để chấm dứt kết nối liên quan

Trong bài viết này, chúng tôi nhằm mục đích xem xét hai cách để giải quyết vấn đề nêu trên. Chúng tôi sẽ sử dụng dbForge Studio cho MySQL cho mục đích đó

MySQL đóng kết nối

Phương pháp 1. Ngừng kết nối MySQL dựa trên thông tin đăng nhập của người dùng bằng Sự kiện

Phương pháp đầu tiên bao gồm tạo một Sự kiện MySQL đặc biệt. Khi bạn tạo một sự kiện, bạn tạo một đối tượng cơ sở dữ liệu đã đặt tên chứa một hoặc nhiều câu lệnh SQL sẽ được thực thi tại một hoặc nhiều khoảng thời gian đều đặn, bắt đầu và kết thúc vào một ngày và giờ cụ thể

Sử dụng tập lệnh sau để tạo sự kiện trên cơ sở dữ liệu
[code lang=”SQL”]DELIMITER $
TẠO SỰ KIỆN kill_ process_event
TRÊN LỊCH MỖI ‘1’ NGÀY
BẮT ĐẦU ‘2019-03-20 08. 45. 30’
LÀM
BẮT ĐẦU
KHAI BÁO kill_done int;
KHAI BÁO THOÁT XỬ LÝ KHI KHÔNG TÌM ĐƯỢC SET kill_done = 1;
BẮT ĐẦU
KHAI BÁO con trỏ_ID int;
KHAI BÁO con trỏ_i CON TRỎ CHO
LỰA CHỌN
Tôi
TỪ thông tin_lược đồ. DANH SÁCH QUY TRÌNH
NƠI NGƯỜI DÙNG THÍCH 'test%'
VÀ ID. = CONNECTION_ID();
MỞ con trỏ_i;
read_loop
VÒNG
TẢI con trỏ_i VÀO con trỏ_ID;
GIẾT KẾT NỐI con trỏ_ID;
NẾU kill_done THÌ
RỜI read_loop;
KẾT THÚC NẾU;
VÒNG KẾT THÚC;
ĐÓNG con trỏ_i;
KẾT THÚC;
KẾT THÚC
$

THAY ĐỔI SỰ KIỆN kill_ process_event
CHO PHÉP
$

KÊNH GIỚI HẠN ;[/code]
Bước tiếp theo

• Gán các giá trị của riêng bạn cho các tham số bắt buộc. Cụ thể, lịch trình, thời gian và đăng nhập người dùng
• Lên lịch sự kiện
• Đặt biến máy chủ event_scheduler = ON

Cách lên lịch sự kiện
Để lên lịch cho Sự kiện, nhấp chuột phải vào Sự kiện đó trong Object Explorer và chọn Chỉnh sửa Sự kiện từ cửa sổ bật lên. Trong trình hướng dẫn mở ra, bạn có thể định cấu hình Ngày bắt đầu và Ngày kết thúc, Sự lặp lại và các tùy chọn có liên quan khác cho Sự kiện

MySQL đóng kết nối

Trong ví dụ của chúng tôi, chúng tôi muốn hủy kết nối cho người dùng thử nghiệm% trên cơ sở dữ liệu sakila. Hình ảnh bên dưới hiển thị đầu ra cho truy vấn MySQL trước khi triển khai các hành động được mô tả trong Phương pháp 1

MySQL đóng kết nối

Sau khi thực thi tập lệnh trước, tất cả các kết nối với thông tin đăng nhập của người dùng ('test%') sẽ bị hủy

MySQL đóng kết nối

Hạn chế của phương pháp là phải thay đổi đối tượng (Event) khi thay đổi điều kiện chọn session ID

Ngoài ra, bạn có thể tạo Thủ tục được lưu trữ và Sự kiện để gọi thủ tục này

Chấm dứt kết nối MySQL dựa trên thông tin đăng nhập của người dùng bằng cách sử dụng Sự kiện gọi Thủ tục được lưu trữ

Về cơ bản, phương pháp này là phần mở rộng của phương pháp tiến hành. Nó liên quan đến việc tạo một thủ tục MySQL và sau đó lên lịch sự kiện để gọi thủ tục này

  1. Trước tiên, bạn cần tạo một Thủ tục lưu trữ trên cơ sở dữ liệu

[code lang=”SQL”]DELIMITER $
TẠO THỦ TỤC kill_ process_proc()
BẮT ĐẦU
KHAI BÁO kill_done int;
KHAI BÁO THOÁT XỬ LÝ KHI KHÔNG TÌM ĐƯỢC SET kill_done = 1;
BẮT ĐẦU
KHAI BÁO con trỏ_ID int;
KHAI BÁO con trỏ_i CON TRỎ CHO
LỰA CHỌN
Tôi
TỪ thông tin_lược đồ. DANH SÁCH QUY TRÌNH
NƠI NGƯỜI DÙNG THÍCH 'test%'
VÀ ID. = CONNECTION_ID();
MỞ con trỏ_i;
read_loop
VÒNG
TẢI con trỏ_i VÀO con trỏ_ID;
GIẾT KẾT NỐI con trỏ_ID;
NẾU kill_done THÌ
RỜI read_loop;
KẾT THÚC NẾU;
VÒNG KẾT THÚC;
ĐÓNG con trỏ_i;
KẾT THÚC;
KẾT THÚC$
KÊNH GIỚI HẠN ;[/code]

Bạn cần gán giá trị cần thiết cho tham số USER. Trong ví dụ của chúng tôi, đó là 'test%'

2. Tiếp theo, thủ tục đã sẵn sàng, bạn có thể tạo một sự kiện để gọi nó và thực hiện nó theo lịch trình. Vui lòng xem xét đoạn script sau
[code lang=”SQL”]CREATE DEFINER = ‘root’@’localhost’
SỰ KIỆN. kill_ process_event
TRÊN LỊCH MỖI ‘1’ NGÀY
BẮT ĐẦU ‘2019-03-19 14. 53. 00’
LÀM
BẮT ĐẦU
GỌI kill_ process_proc();
KẾT THÚC;

THAY ĐỔI SỰ KIỆN. kill_ process_event
BẬT;[/code]

3. Bước tiếp theo

• Gán các giá trị của riêng bạn cho các tham số bắt buộc. Cụ thể là lịch trình, thời gian, cơ sở dữ liệu và thông tin đăng nhập của người dùng
• Lên lịch sự kiện
• Đặt biến máy chủ event_scheduler = ON

Sau khi thực hiện các bước trước đó, tất cả các kết nối có thông tin đăng nhập của người dùng ('test%') sẽ bị hủy

Phương pháp 2. Tạo tệp bat để khởi chạy ứng dụng khách MySQL và quy trình có tham số

Bạn cũng có thể tạo tệp BAT thực thi để khởi chạy ứng dụng khách MySQL và quy trình có tham số thông qua giao diện dòng lệnh
Đầu tiên, bạn cần tạo một thủ tục với các tham số. Để làm điều này, vui lòng sử dụng tập lệnh sau

[code lang=”SQL”]DELIMITER $
TẠO THỦ TỤC kill_ process_param (IN người dùng VARCHAR (255))
BẮT ĐẦU
KHAI BÁO kill_done int;
KHAI BÁO THOÁT XỬ LÝ KHI KHÔNG TÌM ĐƯỢC SET kill_done = 1;
BẮT ĐẦU
KHAI BÁO con trỏ_ID int;
KHAI BÁO con trỏ_i CON TRỎ CHO
LỰA CHỌN
Tôi
TỪ thông tin_lược đồ. DANH SÁCH QUY TRÌNH
NƠI NGƯỜI DÙNG THÍCH người dùng
VÀ ID. = CONNECTION_ID();
MỞ con trỏ_i;
read_loop
VÒNG
TẢI con trỏ_i VÀO con trỏ_ID;
GIẾT KẾT NỐI con trỏ_ID;
NẾU kill_done THÌ
RỜI read_loop;
KẾT THÚC NẾU;
VÒNG KẾT THÚC;
ĐÓNG con trỏ_i;
KẾT THÚC;
KẾT THÚC$
KÊNH GIỚI HẠN ;[/code]
Thủ tục tương ứng sẽ xuất hiện trên cơ sở dữ liệu. Hãy xem nó với sự trợ giúp của dbForge Studio cho MySQL

MySQL đóng kết nối

Tiếp theo, bạn cần tạo một tệp BAT

Để tạo một tệp BAT
1. Mở trình soạn thảo văn bản đơn giản như Notepad
2. Nhập mã sau đây

"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" --user= --password= --host= --port= --database= --execute="CALL kill_process_param('%1')"

3. Gán các giá trị của riêng bạn cho các tham số tên người dùng, mật khẩu, máy chủ, cổng và cơ sở dữ liệu

4. Lưu tệp với. phần mở rộng dơi

Bây giờ, bạn cần chạy tệp bat với tham số

MySQL đóng kết nối

Kết quả là tất cả các kết nối với thông tin đăng nhập của người dùng ('test%') sẽ bị hủy

Phần kết luận

Biết cách hủy một quy trình trong Máy chủ MySQL có thể là một công cụ hữu ích cần có trong hộp công cụ của bạn. Tuy nhiên, chúng tôi khuyên bạn nên sử dụng các phương pháp đã cho một cách tiết kiệm

Phương pháp đóng kết nối với MySQL là gì?

Kết nối MySql. Đóng Phương thức. Đóng kết nối với cơ sở dữ liệu. Đây là phương pháp ưa thích để đóng bất kỳ kết nối mở nào.

Tại sao việc đóng kết nối MySQL lại quan trọng?

Nếu tập lệnh của bạn có khá nhiều xử lý cần thực hiện sau khi tìm nạp kết quả và đã truy xuất toàn bộ tập kết quả , thì bạn chắc chắn nên đóng kết nối. Nếu không, có khả năng máy chủ MySQL sẽ đạt đến giới hạn kết nối khi máy chủ web đang được sử dụng nhiều.

Làm cách nào để đóng máy chủ MySQL?

Windows – Khởi động và Dừng Máy chủ .
Mở cửa sổ 'Run' bằng cách sử dụng phím Win + R
Nhập 'dịch vụ. msc'
Bây giờ tìm kiếm dịch vụ MySQL dựa trên phiên bản được cài đặt
Nhấp vào 'dừng', 'bắt đầu' hoặc 'khởi động lại' tùy chọn dịch vụ

Điều gì xảy ra nếu bạn không đóng kết nối MySQL?

Trên thực tế, người dùng sẽ thấy lỗi SQL thay vì các trang web đẹp . Tốt hơn là mở một kết nối để đọc dữ liệu, sau đó đóng nó, sau đó hiển thị dữ liệu và sau khi người dùng nhấp vào "gửi", bạn mở một kết nối khác và sau đó gửi tất cả các thay đổi.