cách khắc phục lỗi hết thời gian kết nối. khoảng thời gian chờ đã trôi qua trước khi có được kết nối từ nhóm. điều này có thể đã xảy ra do tất cả các kết nối gộp đang được sử dụng và đã đạt đến kích thước nhóm tối đa
Những gì tôi đã thử
MySqlConnection conn = new MySqlConnection[];
conn. Chuỗi kết nối = "máy chủ = 192. 168. 100. 180;user=rks;database=test;port=3306;password=1234;";
conn. Mở[];
cmd. LệnhTimeout = 600;
MySqlConnection conn = new MySqlConnection[]; conn.ConnectionString = "server=192.168.100.180;user=rks;database=test;port=3306;password=1234;"; conn.Open[]; MySqlDataReader rdr = cmd1.ExecuteReader[]; cmd.CommandTimeout = 600; rdr.Close[]; connn.Close[];
Thêm giải pháp của bạn ở đây
B I U S small BIG code var
& link [^] encode untab case indent outdent
Xem trước 0
thành viên hiện có
hoặc tham gia với chúng tôi
Tải xuống, Bình chọn, Nhận xét, Xuất bản
Email của bạnEmail này đang được sử dụng. Bạn có cần mật khẩu của bạn?
Mật khẩu tùy chọnKhi trả lời câu hỏi, vui lòng.
- Đọc kỹ câu hỏi.
- Hiểu rằng tiếng Anh không phải là ngôn ngữ đầu tiên của mọi người, vì vậy hãy khoan dung với lỗi chính tả và ngữ pháp
- Nếu một câu hỏi được diễn đạt kém thì hãy yêu cầu làm rõ, bỏ qua nó hoặc chỉnh sửa câu hỏi và khắc phục sự cố. Xúc phạm không được chào đón
- Đừng bảo ai đó đọc hướng dẫn. Rất có thể họ có và không nhận được. Đưa ra câu trả lời hoặc chuyển sang câu hỏi tiếp theo
Nội dung này, cùng với bất kỳ tệp và mã nguồn liên quan nào, được cấp phép theo Giấy phép Mở Dự án Code [CPOL]
Khi một ứng dụng không đóng được kết nối không sử dụng, giá trị
$ sudo vi /etc/my.cnf
0 thấp sẽ giúp bạn tránh vượt quá số lượng kết nối cho phép. Sử dụng các hướng dẫn sau để đặt giá trị nàyĐăng nhập vào máy chủ của bạn bằng cách sử dụng Secure Shell® [SSH]
Sử dụng lệnh sudo để chỉnh sửa
1, tệp cấu hình MySQL®$ sudo vi /etc/my.cnf
$ sudo vi /etc/my.cnf
Xác định vị trí cấu hình thời gian chờ và thực hiện các điều chỉnh phù hợp với máy chủ của bạn
wait_timeout = 28800 interactive_timeout = 28800
Giá trị
2 không ảnh hưởng đến bất kỳ kết nối ứng dụng web nào.$ sudo vi /etc/my.cnf
0 thấp là một phương pháp hay nhất bình thường$ sudo vi /etc/my.cnf
Môi trường PHP phi trạng thái hoạt động tốt với thời gian chờ 60 giây trở xuống. Các ứng dụng sử dụng nhóm kết nối [Java®,. NET®, v.v.] cần điều chỉnh giá trị
0 để phù hợp với cài đặt nhóm kết nối của họ.$ sudo vi /etc/my.cnf
5 giây mặc định hoạt động tốt với nhóm kết nối được định cấu hình đúng$ sudo vi /etc/my.cnf
Định cấu hình
0 dài hơn một chút so với thời gian kết nối dự kiến của nhóm kết nối ứng dụng để kiểm tra an toàn. Cân nhắc thay đổi giá trị trực tuyến vì điều đó không yêu cầu khởi động lại MySQL và bạn có thể điều chỉnh giá trị đó trong khi máy chủ chạy mà không phát sinh thời gian ngừng hoạt động. Thay đổi giá trị thành$ sudo vi /etc/my.cnf
0 và mọi phiên mới được tạo sẽ kế thừa giá trị đó. Đảm bảo giữ nguyên cài đặt trongwait_timeout = 28800 interactive_timeout = 28800
1. Mọi kết nối hiện có cần đạt giá trị cũ là$ sudo vi /etc/my.cnf
0 nếu ứng dụng từ bỏ kết nối. Nếu bạn có các công việc báo cáo xử lý cục bộ lâu hơn trong khi giao dịch, bạn có thể xem xét việc các công việc đó gặp sự cố$ sudo vi /etc/my.cnf
3 khi kết nốiwait_timeout = 28800 interactive_timeout = 28800
Lưu các thay đổi và thoát khỏi trình chỉnh sửa
Sử dụng lệnh sau để khởi động lại MySQL và áp dụng các thay đổi, nếu cần
$ sudo /etc/init.d/mysql restart
©2020 Rackspace US, Inc
Trừ khi có ghi chú khác, nội dung trên trang này được cấp phép theo Creative Commons Attribution-NonCommercial-NoDerivs 3. 0 Giấy phép chưa chuyển đổi
Khi cài đặt Stash hoặc trong quá trình sử dụng ứng dụng, mẫu thông báo sau được báo cáo trong tệp nhật ký
2012-08-12 22:20:25,437 ERROR [main] com.jolbox.bonecp.ConnectionHandle Database access problem. Killing off all remaining connections in the connection pool. SQL State = 08S01
2012-08-12 22:20:25,456 ERROR [main] o.h.transaction.JDBCTransaction JDBC begin failed
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 18,058 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
Gây ra
Sự cố này xảy ra do các kết nối cơ sở dữ liệu hết thời gian của máy chủ MySQL nhanh hơn nhóm kết nối Stash có thể nhận thấy. Điều này làm cạn kiệt nhóm kết nối Stash vì nó sẽ giữ cho các kết nối của nó mở trong khi phía MySQL của các kết nối đã bị đóng
Nghị quyết
Stash được vận chuyển với khoảng thời gian kiểm tra kết nối mặc định là 10 phút
MySQL có giá trị mặc định biến được đặt thành 28800 giây [8 giờ]
Do đó, nếu cả hai bên của kết nối vẫn giữ nguyên giá trị mặc định, sự cố sẽ không bao giờ xảy ra, vì MySQL sẽ không bao giờ hết thời gian chờ kết nối trước khi Stash thực hiện điều đó
Nếu biến wait_timeout của MySQL bị giảm giá trị
Trong trường hợp này, để tránh việc MySQL đóng kết nối và Stash không thông báo, hãy xác định giá trị khoảng thời gian kiểm tra Stash thành giá trị nhỏ hơn giá trị MySQL.
Trong tệp
9, hãy thêm dòng sau và xác định số phút cho thời gian chờ kết nối.$ sudo vi /etc/my.cnf
db.pool.idle.testInterval=1
Nếu thời gian chờ của MySQL chưa đến một phút, hãy thêm
0 vào URL JDBC trong tệpwait_timeout = 28800 interactive_timeout = 28800
1 file to use MySQL default value 28800 seconds, eg:wait_timeout = 28800 interactive_timeout = 28800
________số 8
Lưu ý rằng MySQL giữ lại một số phạm vi cho biến
$ sudo vi /etc/my.cnf
0 và $ sudo vi /etc/my.cnf
2. Kiểm tra kỹ cài đặt tương tự của biến bằng cách chạy các truy vấn sau trên cơ sở dữ liệu