Hướng dẫn how do i set connection timeout in mysql? - làm cách nào để đặt thời gian chờ kết nối trong mysql?

Tôi đã kết nối với cơ sở dữ liệu MySQL bằng Python con = _mysql.connect('localhost', 'dell-pc', '', 'test') Chương trình mà tôi đã viết mất rất nhiều thời gian thực hiện đầy đủ, tức là khoảng 10 giờ. Trên thực tế, tôi đang cố gắng đọc những từ riêng biệt từ một kho văn bản. Sau khi đọc xong, có một lỗi hết thời gian.

Tôi đã kiểm tra thời gian chờ mặc định MySQL là:

+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| connect_timeout            | 10       |
| delayed_insert_timeout     | 300      |
| innodb_lock_wait_timeout   | 50       |
| innodb_rollback_on_timeout | OFF      |
| interactive_timeout        | 28800    |
| lock_wait_timeout          | 31536000 |
| net_read_timeout           | 30       |
| net_write_timeout          | 60       |
| slave_net_timeout          | 3600     |
| wait_timeout               | 28800    |
+----------------------------+----------+

Làm cách nào để thay đổi thời gian chờ mặc định?

hỏi ngày 6 tháng 2 năm 2013 lúc 10:30Feb 6, 2013 at 10:30

Hướng dẫn how do i set connection timeout in mysql? - làm cách nào để đặt thời gian chờ kết nối trong mysql?

Animesh Pandeyanimesh PandeyAnimesh Pandey

5.66013 Huy hiệu vàng58 Huy hiệu bạc128 Huy hiệu đồng13 gold badges58 silver badges128 bronze badges

1

Do:

con.query('SET GLOBAL connect_timeout=28800')
con.query('SET GLOBAL interactive_timeout=28800')
con.query('SET GLOBAL wait_timeout=28800')

Ý nghĩa tham số (được lấy từ MySQL Workbench trong Navigator: Instance> Tùy chọn Tệp> Tab "Mạng"> Phần "Cài đặt thời gian chờ")

  • Connect_Timeout: Số giây mà máy chủ MySQLD chờ gói kết nối trước khi trả lời với 'bắt tay xấu': Number of seconds the mysqld server waits for a connect packet before responding with 'Bad handshake'
  • Interactive_timeout Số giây mà máy chủ chờ hoạt động trên kết nối tương tác trước khi đóng nó Number of seconds the server waits for activity on an interactive connection before closing it
  • Wait_Timeout Số giây mà máy chủ chờ đợi hoạt động trên kết nối trước khi đóng nó Number of seconds the server waits for activity on a connection before closing it

BTW: 28800 giây là 8 giờ, vì vậy trong 10 giờ thực hiện các giá trị này thực sự sẽ cao hơn.

Joshua Pinter

43.2K23 Huy hiệu vàng233 Huy hiệu bạc239 Huy hiệu Đồng23 gold badges233 silver badges239 bronze badges

Đã trả lời ngày 26 tháng 10 năm 2013 lúc 18:50Oct 26, 2013 at 18:50

Hướng dẫn how do i set connection timeout in mysql? - làm cách nào để đặt thời gian chờ kết nối trong mysql?

6

Bạn thay đổi giá trị mặc định trong tệp cấu hình MySQL (tùy chọn Connect_Timeout trong phần MySQLD) -connect_timeout in mysqld section) -

[mysqld]
connect_timeout=100

Nếu tệp này không thể truy cập được cho bạn, thì bạn có thể đặt giá trị này bằng cách sử dụng câu lệnh này -

SET GLOBAL connect_timeout=100;

Đã trả lời ngày 6 tháng 2 năm 2013 lúc 10:38Feb 6, 2013 at 10:38

Hướng dẫn how do i set connection timeout in mysql? - làm cách nào để đặt thời gian chờ kết nối trong mysql?

DevartDevartDevart

Huy hiệu vàng 117K2222 gold badges161 silver badges182 bronze badges

2

Tôi biết đây là một câu hỏi cũ nhưng chỉ cho bản ghi, điều này cũng có thể được thực hiện bằng cách truyền các tùy chọn kết nối phù hợp làm đối số cho cuộc gọi _mysql.connect. Ví dụ,

con = _mysql.connect(host='localhost', user='dell-pc', passwd='', db='test',
          connect_timeout=1000)

Lưu ý việc sử dụng các tham số từ khóa (máy chủ, passwd, v.v.). Họ cải thiện khả năng đọc mã của bạn.

Để biết chi tiết về các đối số khác nhau mà bạn có thể chuyển sang _mysql.connect, hãy xem tài liệu API MySQLDB

Đã trả lời ngày 14 tháng 11 năm 2016 lúc 14:40Nov 14, 2016 at 14:40

Nsanensanensane

1.6563 huy hiệu vàng21 Huy hiệu bạc 30 Huy hiệu Đồng3 gold badges21 silver badges30 bronze badges

MAX_EXECATION_TIME cũng là một tham số quan trọng cho các truy vấn chạy dài. Sẽ làm việc cho MySQL 5.7 trở lên.

Kiểm tra giá trị hiện tại

SELECT @@GLOBAL.MAX_EXECUTION_TIME, @@SESSION.MAX_EXECUTION_TIME;

Sau đó đặt nó theo nhu cầu của bạn.

SET SESSION MAX_EXECUTION_TIME=2000;
SET GLOBAL MAX_EXECUTION_TIME=2000;

Raj

21.9K14 Huy hiệu vàng97 Huy hiệu bạc138 Huy hiệu đồng14 gold badges97 silver badges138 bronze badges

Đã trả lời ngày 2 tháng 11 năm 2018 lúc 19:24Nov 2, 2018 at 19:24

xs2rashidxs2rashidxs2rashid

85311 Huy hiệu bạc16 Huy hiệu đồng11 silver badges16 bronze badges

2

Làm cách nào để đặt thời gian chờ trong mysql?

Hoặc bạn có thể đặt thời gian chờ toàn cầu hoặc toàn cầu: Đặt phiên MAX_EXECUTY_TIME = 2000; Đặt toàn cầu max_execut_time = 2000; Thời gian chờ chỉ áp dụng cho các truy vấn chọn chỉ đọc. Bạn có thể xử lý lỗi này tập trung trong ứng dụng của mình và hiển thị thông báo cho người dùng rằng phản hồi mất quá nhiều thời gian và bị hủy bỏ.SET SESSION MAX_EXECUTION_TIME=2000; SET GLOBAL MAX_EXECUTION_TIME=2000; The timeouts only apply to read-only SELECT queries. You can handle this error centrally in your application and display message to users that the response took too long and was aborted.

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

MySQL có giá trị mặc định biến WAIT_TIMEOUT được đặt thành 28800 giây (8 giờ) ...
Hiển thị các biến ..
Hiển thị các biến phiên ..
Hiển thị các biến toàn cầu ..

Thời gian chờ kết nối MySQL là gì?

Một lỗi kết nối đã xảy ra lỗi khi tường lửa của cơ sở dữ liệu sẽ không cho phép bạn kết nối với cơ sở dữ liệu từ máy hoặc tài nguyên cục bộ của bạn.occurs when the database's firewall won't allow you to connect to the database from your local machine or resource.

Làm cách nào để giữ kết nối MySQL?

Để ngăn chặn các kết nối này được đóng tự động, đầu nối có thể được cấu hình để giữ cho kết nối tồn tại bằng cách gửi một câu lệnh Chọn đơn giản (thực sự chọn 'keep_alive';) định kỳ để đảm bảo rằng thời gian chờ MySQL không đạt được và kết nối đóng.submitting a simple SELECT statement (actually SELECT 'KEEP_ALIVE';) periodically to ensure that the MySQL timeout is not reached and the connection closed.

MySQL có tự động đóng kết nối không?

Lý do phổ biến nhất cho máy chủ MySQL đã biến mất là lỗi máy chủ đã hết thời gian và đóng kết nối.Theo mặc định, máy chủ đóng kết nối sau 8 giờ nếu không có gì xảy ra.Bạn có thể thay đổi giới hạn thời gian bằng cách đặt biến Wait_Timeout khi bạn bắt đầu mySQLD.By default, the server closes the connection after 8 hours if nothing has happened. You can change the time limit by setting the wait_timeout variable when you start mysqld.

Làm cách nào để tắt các kết nối hoạt động trong MySQL?

Cách nhanh nhất để tiêu diệt tất cả các kết nối MySQL sẽ chỉ đơn giản là khởi động lại dịch vụ MySQL.Điều này có thể được thực hiện thông qua "Dịch vụ khởi động lại" trong WHM hoặc thông qua dòng lệnh.Cũng có thể tiêu diệt các kết nối riêng lẻ cho máy khách MySQL.Bạn có thể truy cập máy khách này bằng cách phát hành lệnh MySQL từ phiên SSH gốc.restart the MySQL service. This can be done via "Restart Services" in WHM, or via the command-line. It is also possible to kill individual connections for the MySQL client. You can access this client by issuing the MySQL command from a root SSH session.