Tôi đã định cấu hình Connection_Keepalive = 1 tham số trong bộ định tuyến readwritesplit, ra các máy chủ Mariadb được cấu hình với Wait_Timeout = 28800 và Interactive_Timeout = 28800 nhưng chúng tôi vẫn đang gặp lỗi 'MySQL Server đã biến mất trong quá trình hoạt động của chúng tôi. Theo tài liệu, MaxScale sẽ giữ kết nối mở bằng cách gửi các gói giữ định kỳ. Tôi đã kiểm tra cụm Mariadb của chúng tôi và có thể xác nhận rằng không có nút nào không gây ra vấn đề này, nhưng thực sự ngắt kết nối là do một kết nối mở dài không gửi bất kỳ truy vấn nào. Trên thực tế, ứng dụng đã gửi các truy vấn như 'Chọn 1' bởi có vẻ như chúng được chuyển đến nô lệ cho phép kết nối chính đến hết thời gian. Khi bạn chạy các truy vấn MySQL, đôi khi bạn có thể gặp phải lỗi khi nói rằng bạn bị mất kết nối với máy chủ MySQL như sau:
Lỗi trên thường xảy ra khi bạn chạy truy vấn MySQL dài hoặc phức tạp chạy trong hơn một vài giây. Để sửa lỗi, bạn có thể cần thay đổi cài đặt toàn cầu liên quan đến thời gian chờ trong máy chủ cơ sở dữ liệu MySQL của bạn. Tăng thời gian chờ kết nối từ dòng lệnhNếu bạn đang truy cập MySQL từ dòng lệnh, thì bạn có thể tăng số giây MYSQL sẽ đợi phản hồi kết nối bằng tùy chọn Theo mặc định, MySQL sẽ đợi 10 giây trước khi phản hồi với lỗi thời gian chờ kết nối. Bạn có thể tăng số lên 120 giây để chờ hai phút:
Bạn có thể điều chỉnh số Khi bạn ở bên trong bảng điều khiển Sử dụng tùy chọn Nếu bạn muốn thực hiện thay đổi vĩnh viễn cho biến hết thời gian 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 bạn đã sử dụng để truy cập vào máy chủ cơ sở dữ liệu của mình. Hãy cùng xem cách thay đổi các biến toàn cầu trong thời gian chờ trong máy chủ cơ sở dữ liệu MySQL của bạn trước tiên. Điều chỉnh các biến toàn cầu thời gian chờ trong máy chủ cơ sở dữ liệu MySQL của bạnCơ sở dữ liệu MySQL lưu trữ các biến toàn cầu liên quan đến thời gian chờ mà bạn có thể truy cập bằng truy vấn sau:
Ở đây, kết quả từ cơ sở dữ liệu địa phương của tôi. Các biến được tô sáng là những biến bạn cần thay đổi để cho MySQL chạy các truy vấn dài hơn:
Để thay đổi các giá trị biến, bạn có thể sử dụng truy vấn 0 như được hiển thị bên dưới:
Truy vấn trên phải điều chỉnh giá trị biến 1 thành 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 các tệp cấu hình MySQL của bạnNgoài ra, nếu bạn 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 My.cnf (MAC) hoặc tệp My.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 chỉnh sửa văn bản mà bạn chọn và cố gắng tìm các biến sau trong MySQLD:
Các biến 3 và 4 không nên gây ra bất kỳ vấn đề nào vì chúng thường có 28800 giây (hoặc 8 giờ) làm giá trị mặc định của chúng.Để ngăn chặn lỗi thời gian chờ, bạn cần tăng các giá trị biến 1 và 6. Tôi đề nghị đặt nó thành ít nhất 2 giây (10 phút)Nếu bạn sử dụng các công cụ GUI MySQL như MySQL Workbench, phần tiếp theo 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 Chỉnh sửa> Tùy chọn> Trình soạn thảo SQL như hiển thị bên dưới:Edit > Preferences > SQL Editor as shown below: Nếu bạn sử dụng Mac, thì menu sẽ nằm trong MySQLworkBench> Tùy chọn> Trình chỉnh sửa SQL như được hiển thị bên dưới:MySQLWorkbench > Preferences > SQL Editor as shown below: Nếu bạn sử dụng phần tiếp theo ACE như tôi, thì bạn có thể tìm thấy tùy chọn thời gian chờ kết nối trong menu Tùy chọn> Mạng.Preferences > Network menu. Tại đây, một ảnh chụp màn hình từ cài đặt mạng ACE phần tiếp theo: Đối với các công cụ GUI khác, bạn cần tự mình tìm tùy chọn. Bạn có thể thử tìm kiếm thuật ngữ 8 trong Google để tìm tùy chọn.Và đó là bốn giải pháp bạn có thể cố gắng khắc phục kết nối MySQL bị mất trong quá trình vấn đề truy vấn. Tôi hy vọng hướng dẫn này đã hữu ích cho bạn 🙏 Tại sao MySQL tiếp tục mất kết nối?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.the server timed out and closed the connection. 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.
Không thể kết nối máy chủ có thể không chạy kết nối bị mất với máy chủ MySQL trong quá trình truy vấn?Thông thường có nghĩa là không có máy chủ MySQL chạy trên hệ thống hoặc bạn đang sử dụng tên tệp unix không chính xác hoặc số cổng TCP/IP khi cố gắng kết nối với máy chủ.Bạn cũng nên kiểm tra xem cổng TCP/IP bạn đang sử dụng chưa bị chặn bởi tường lửa hoặc dịch vụ chặn cổng.there is no MySQL server running on the system or that you are using an incorrect Unix socket file name or TCP/IP port number when trying to connect to the server. You should also check that the TCP/IP port you are using has not been blocked by a firewall or port blocking service.
MaxScale MySQL là gì?Mariadb MaxScale là một proxy cơ sở dữ liệu mở rộng tính khả dụng cao, khả năng mở rộng và bảo mật của máy chủ Mariadb đồng thời đơn giản hóa việc phát triển ứng dụng bằng cách tách rời khỏi cơ sở hạ tầng cơ sở dữ liệu cơ bản.
Mã lỗi 2013 trong MySQL Workbench là gì?Mất kết nối với máy chủ MySQL trong quá trình truy vấn.. |