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