Hết thời gian chờ truy vấn chuỗi kết nối mysql

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ạn

Email 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ọn

Khi trả lời câu hỏi, vui lòng.

  1. Đọc kỹ câu hỏi.
  2. 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
  3. 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
  4. Đừ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
Let's work to help developers, not make them feel stupid.


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

  1. Đăng nhập vào máy chủ của bạn bằng cách sử dụng Secure Shell® [SSH]

  2. Sử dụng lệnh sudo để chỉnh sửa

     $ sudo vi /etc/my.cnf
    
    1, tệp cấu hình MySQL®

     $ sudo vi /etc/my.cnf
    
  3. 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ị

       $ sudo vi /etc/my.cnf
      
      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

    • 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ị

       $ sudo vi /etc/my.cnf
      
      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

    • Định cấu hình

       $ sudo vi /etc/my.cnf
      
      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
       wait_timeout = 28800
       interactive_timeout = 28800
      
      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 trong
       $ sudo vi /etc/my.cnf
      
      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ố
       wait_timeout = 28800
       interactive_timeout = 28800
      
      3 khi kết nối

  4. Lưu các thay đổi và thoát khỏi trình chỉnh sửa

  5. 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ị

  1. 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

     $ sudo vi /etc/my.cnf
    
    9, hãy thêm dòng sau và xác định số phút cho thời gian chờ kết nối.

    db.pool.idle.testInterval=1

  2. Nếu thời gian chờ của MySQL chưa đến một phút, hãy thêm

     wait_timeout = 28800
     interactive_timeout = 28800
    
    0 vào URL JDBC trong tệp
     wait_timeout = 28800
     interactive_timeout = 28800
    
    1 file to use MySQL default value 28800 seconds, eg:

    ________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

Tôi có thể đặt thời gian chờ lệnh trong chuỗi kết nối không?

Bạn có thể sử dụng cài đặt chuỗi kết nối và xây dựng toàn bộ chuỗi kết nối [bao gồm tên người dùng và mật khẩu] để ghi đè thời gian chờ kết nối [Hết thời gian chờ kết nối=30]. Bạn có thể thay đổi thời gian chờ của lệnh bằng cách sử dụng /GlobalSettings/System/Database/CommandTimeout - mặc định là 30.

Làm cách nào để khắc phục thời gian chờ kết nối trong MySQL?

Mạng hỗ trợ . Use the sudo command to edit my. cnf , tệp cấu hình MySQL® . 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. Giá trị Interactive_timeout không ảnh hưởng đến bất kỳ kết nối ứng dụng web nào.

Làm cách nào để kiểm tra thời gian chờ kết nối MySQL?

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 của biến wait_timeout được đặt thành 28800 giây [8 giờ]. .
HIỂN THỊ BIẾN
HIỂN THỊ CÁC BIẾN CỦA PHIÊN
HIỂN THỊ CÁC BIẾN TOÀN CẦU

Thời gian chờ kết nối trong chuỗi kết nối là gì?

Thời gian chờ kết nối mặc định là gì? . Giá trị mặc định là 15 giây

Chủ Đề