Đặt connect_timeout MySQL

Khi chạy truy vấn MySQL, đôi khi bạn có thể gặp lỗi báo mất kết nối với máy chủ MySQL như sau

Error Code: 2013. Lost connection to MySQL server during query

Lỗi trên thường xảy ra khi bạn chạy một truy vấn MySQL dài hoặc phức tạp kéo dài hơn vài giây

Để khắc phục lỗi, bạn có thể cần thay đổi cài đặt chung liên quan đến thời gian chờ trong máy chủ cơ sở dữ liệu MySQL của mình

Tăng thời gian chờ kết nối từ dòng lệnh bằng tùy chọn –connect-timeout

Nếu bạn đang truy cập MySQL từ dòng lệnh, thì bạn có thể tăng số giây mà MySQL sẽ đợi phản hồi kết nối bằng cách sử dụng tùy chọn

mysql -uroot -proot --connect-timeout 120
5

Theo mặc định, MySQL sẽ đợi trong 10 giây trước khi phản hồi với lỗi hết thời gian chờ kết nối

Bạn có thể tăng số lên 120 giây để đợi trong hai phút

mysql -uroot -proot --connect-timeout 120

Bạn có thể điều chỉnh số

mysql -uroot -proot --connect-timeout 120
6 ở trên thành số giây bạn muốn đợi phản hồi kết nối

Khi bạn đang ở trong bảng điều khiển

mysql -uroot -proot --connect-timeout 120
7, hãy thử chạy lại truy vấn của mình để xem truy vấn đã hoàn tất thành công chưa

Sử dụng tùy chọn

mysql -uroot -proot --connect-timeout 120
5 tạm thời thay đổi thời gian chờ giây. Nó chỉ hoạt động cho phiên MySQL hiện tại mà bạn đang chạy, vì vậy bạn cần sử dụng tùy chọn này mỗi khi bạn muốn thời gian chờ kết nối lâu hơn

Nếu bạn muốn thực hiện thay đổi vĩnh viễn đối với biến thời gian chờ kết nối, thì bạn cần điều chỉnh cài đặt từ máy chủ cơ sở dữ liệu MySQL hoặc công cụ GUI mà bạn đã sử dụng để truy cập máy chủ cơ sở dữ liệu của mình

Trước tiên, hãy xem cách thay đổi các biến toàn cục hết thời gian chờ trong máy chủ cơ sở dữ liệu MySQL của bạn

Điều chỉnh các biến toàn cục thời gian chờ trong máy chủ cơ sở dữ liệu MySQL của bạn

Cơ sở dữ liệu MySQL lưu trữ các biến toàn cục liên quan đến thời gian chờ mà bạn có thể truy cập bằng truy vấn sau

SHOW VARIABLES LIKE "%timeout";

Đây là kết quả từ cơ sở dữ liệu cục bộ của tôi. Các biến được đánh dấu là những biến bạn cần thay đổi để MySQL chạy các truy vấn dài hơn

+-----------------------------------+----------+
| Variable_name                     | Value    |
+-----------------------------------+----------+
| connect_timeout                   | 10       |
| delayed_insert_timeout            | 300      |
| have_statement_timeout            | YES      |
| innodb_flush_log_at_timeout       | 1        |
| innodb_lock_wait_timeout          | 50       |
| innodb_rollback_on_timeout        | OFF      |
| interactive_timeout               | 28800    |
| lock_wait_timeout                 | 31536000 |
| mysqlx_connect_timeout            | 30       |
| mysqlx_idle_worker_thread_timeout | 60       |
| mysqlx_interactive_timeout        | 28800    |
| mysqlx_port_open_timeout          | 0        |
| mysqlx_read_timeout               | 30       |
| mysqlx_wait_timeout               | 28800    |
| mysqlx_write_timeout              | 60       |
| net_read_timeout                  | 30       |
| net_write_timeout                 | 60       |
| replica_net_timeout               | 60       |
| rpl_stop_replica_timeout          | 31536000 |
| rpl_stop_slave_timeout            | 31536000 |
| slave_net_timeout                 | 60       |
| wait_timeout                      | 28800    |
+-----------------------------------+----------+

Để thay đổi các giá trị của biến, bạn có thể sử dụng truy vấn

mysql -uroot -proot --connect-timeout 120
0 như hình bên dưới

SET GLOBAL connect_timeout = 600; 

Truy vấn trên sẽ điều chỉnh giá trị biến

mysql -uroot -proot --connect-timeout 120
1 thành
mysql -uroot -proot --connect-timeout 120
2 giây. Bạn có thể điều chỉnh các số khi bạn thấy phù hợp

Điều chỉnh các biến thời gian chờ trong tệp cấu hình MySQL của bạn

Ngoài ra, nếu bạn đang sử dụng tệp cấu hình MySQL để kiểm soát cài đặt kết nối của mình thì bạn có thể chỉnh sửa tệp cấu hình my. cnf (Mac) hoặc của tôi. ini (Windows) được sử dụng bởi kết nối MySQL của bạn

Mở tệp cấu hình đó bằng trình soạn thảo văn bản bạn chọn và thử tìm các biến sau trong mysqld

________số 8

Các biến

mysql -uroot -proot --connect-timeout 120
3 và
mysql -uroot -proot --connect-timeout 120
4 không gây ra vấn đề gì vì chúng thường có 28800 giây (hoặc 8 giờ) làm giá trị mặc định

Để tránh lỗi hết thời gian chờ, bạn cần tăng giá trị biến

mysql -uroot -proot --connect-timeout 120
1 và
mysql -uroot -proot --connect-timeout 120
6. Tôi khuyên bạn nên đặt ít nhất là 12 giây (10 phút)

Điều chỉnh các biến liên quan đến thời gian chờ trong các công cụ GUI MySQL của bạn

Nếu bạn đang sử dụng các công cụ GUI MySQL như MySQL Workbench, Sequel Ace hoặc PHPMyAdmin, thì bạn cũng có thể tìm thấy các biến liên quan đến thời gian chờ được cấu hình bởi các công cụ này trong menu cài đặt hoặc tùy chọn của chúng

Ví dụ: trong MySQL Workbench cho Windows, bạn có thể tìm thấy các cài đặt liên quan đến thời gian chờ trong Edit > Preferences > SQL Editor như hình bên dưới

MySQL Workbench Windows timeout settingsMySQL Workbench Cài đặt thời gian chờ Windows

Nếu bạn đang sử dụng Mac, thì menu sẽ nằm trong MySQLWorkbench > Preferences > SQL Editor như hình bên dưới

MySQL Workbench Mac timeout settingsCài đặt thời gian chờ của MySQL Workbench Mac

Nếu bạn đang sử dụng Sequel Ace như tôi, thì bạn có thể tìm tùy chọn hết thời gian kết nối trong menu Tùy chọn > Mạng

Đây là ảnh chụp màn hình từ cài đặt Sequel Ace Network

Sequel Ace connection timeout optionTùy chọn hết thời gian chờ kết nối Sequel Ace

Đối với các công cụ GUI khác, bạn cần tự tìm tùy chọn. Bạn có thể thử tìm kiếm cụm từ

mysql -uroot -proot --connect-timeout 120
8 trên Google để tìm tùy chọn

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

Thay đổi thời gian chờ của MySQL trên máy chủ .
Đă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 của tôi. .
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. .
Lưu các thay đổi và thoát khỏi trình chỉnh sửa

Connect_timeout trong MySQL là gì?

mysql. connect_timeout cho PHP biết thời gian chờ phản hồi từ máy chủ MySQL khi cố gắng kết nối . connect_timeout trong cấu hình MySQL cho máy chủ MySQL biết thời gian chờ gói kết nối từ máy khách trước khi phản hồi với lỗi Bắt tay không hợp lệ.

Làm cách nào để đặt Max_connections trong MySQL vĩnh viễn?

mysql> ĐẶT TOÀN CẦU max_connections = 250; . Vị trí tệp cấu hình có thể thay đổi theo hệ điều hành của bạn. Theo mặc định, bạn có thể tìm thấy cái này tại /etc/my. cnf trên hệ thống dựa trên CentOS và RHEL và /etc/mysql/my. edit mysql configuration file on your server and set following variable. The configuration file location may change as per your operating system. By default you can find this at /etc/my. cnf on CentOS and RHEL based system and /etc/mysql/my.

Làm cách nào để đặt Wait_timeout trong cửa sổ MySQL?

Nếu chúng ta cần thay đổi giá trị toàn cầu wait_timeout, chúng ta nên làm theo các bước bên dưới. .
mở của tôi. cnf nằm trong thư mục /etc/mysql
Thêm giá trị bên dưới với blog mysqld vào của tôi. tập tin cnf. .
Khởi động lại máy chủ MySQL bằng lệnh bên dưới. .
Sau đó, chúng ta có thể thấy biến wait_timeout đã thay đổi trên toàn cầu