Tùy chọn max_user_connections là một giới hạn được áp đặt, không phải trên tổng số kết nối đồng thời trong phiên bản máy chủ, mà trên tài khoản người dùng cá nhân.
Giả sử người dùng được gọi db_user@localhost
. Bạn có thể tìm hiểu giới hạn kết nối của người dùng này là gì bằng cách chạy truy vấn này:
SELECT max_user_connections FROM mysql.user
WHERE user='db_user' AND host='localhost';
Nếu đây là giá trị khác 0, thay đổi lại bằng:
GRANT USAGE ON *.* TO db_user@localhost WITH MAX_USER_CONNECTIONS 0;
hoặc là
UPDATE mysql.user SET max_user_connections = 0
WHERE user='db_user' AND host='localhost';
FLUSH PRIVILEGES;
Điều này sẽ gây ra mysqld
cho phép người dùng db_user@localhost
sử dụng cài đặt toàn cầu max_user_connections làm giới hạn của nó.
Khi bạn đến điểm này, bây giờ hãy kiểm tra cài đặt chung bằng cách sử dụng
SHOW VARIABLES LIKE 'max_user_connections';
Nếu đây là một giá trị khác không, bạn cần làm hai việc
Điều thứ 1 : Tìm kiếm các thiết lập trong/etc/my.cnf
[mysqld]
max_user_connections = <some number>
bình luận dòng đó ra
Điều thứ 2 : Đặt giá trị động
SET GLOBAL max_user_connections = 0;
Khởi động lại MySQL là không cần thiết.
CẨN THẬN
Tôi đã thảo luận về thiết lập này trong quá khứ
Hãy thử một lần !!!