Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?

Loại lỗi này xảy ra khi kết nối giữa máy khách và máy chủ vượt quá giá trị thời gian chờ đã chỉ định

Ví dụ: nếu bạn có một truy vấn dài cần nhiều thời gian để hoàn thành việc thực thi, MySQL sẽ ngắt kết nối tới máy chủ

Lấy ví dụ, khi xuất một cơ sở dữ liệu lớn, tùy thuộc vào phương thức xuất và dữ liệu được xuất, quá trình này có thể mất nhiều thời gian để hoàn tất. Để ngăn chặn các sự cố trên máy chủ, MySQL có thể ngắt kết nối này trước khi quá trình hoàn tất

Một nguyên nhân phổ biến khác của loại lỗi này là các thao tác nối phức tạp

MySQL Hiển thị giá trị thời gian chờ

Như đã đề cập, bạn có thể khắc phục loại lỗi này bằng cách tăng thời lượng thời gian chờ ở phía máy chủ

Các giá trị thời gian chờ được lưu trữ trong các biến Wait_timeout và Interactive_timeout. Chúng tôi có thể tìm nạp các giá trị hiện tại như được hiển thị trong các truy vấn sau

mysql> hiển thị các biến toàn cục như 'interactive_timeout';

Kết quả đầu ra như sau

+---------------------+-------+
. tên_biến. Giá trị.
+---------------------+-------+
. Interactive_timeout. 28800.
+---------------------+-------+
1 . 00 giây)

Kết quả đã cho hiển thị giá trị mặc định của biến Interactive_timeout. Giá trị này xác định khoảng thời gian, tính bằng giây, mà máy chủ đợi một hoạt động trên một phiên đang hoạt động trước khi chấm dứt hoạt động đó

Chúng ta cũng có thể lấy giá trị của biến wait_timeout là

mysql> hiển thị các biến toàn cục như 'wait_timeout';

bảng kết quả

+---------------+-------+
. tên_biến. Giá trị.
+---------------+-------+
. chờ_thời gian chờ. 28800.
+---------------+-------+
1 hàng trong tập hợp (0. 01 giây)

Biến này đặt thời lượng mà máy chủ MySQL chờ một hoạt động trong phiên không tương tác

Khắc phục lỗi mất kết nối MySQL bằng cách cập nhật biến thời gian chờ

Để khắc phục loại lỗi này, chúng ta có thể cập nhật giá trị của hai biến đã thảo luận trước đó. Chúng ta có thể chạy truy vấn như sau

mysql> ĐẶT @@global. Interactive_timeout=43200;
Truy vấn OK, 0 hàng bị ảnh hưởng (0. 00 giây)

Lệnh trước sẽ cập nhật giá trị của biến Interactive_timeout thành 43200 giây

Để cập nhật tham số wait_timeout, hãy chạy lệnh sau

mysql> ĐẶT @@global. wait_timeout=43200;
Truy vấn OK, 0 hàng bị ảnh hưởng (0. 00 giây)

Bạn xong việc rồi. Bạn có thể thử chạy lại truy vấn đã hẹn giờ của mình

Phần kết luận

Trong bài đăng này, chúng tôi đã thảo luận về nguyên nhân gây ra lỗi mất kết nối khi làm việc với MySQL và các bước bạn có thể thực hiện để khắc phục chúng. Tuy nhiên, hãy chú ý đến các truy vấn của bạn hoặc phân đoạn chúng thành các khối hiệu quả

Trong bài đăng trên blog này, tôi sẽ chỉ cho bạn cách khắc phục sự cố và giải quyết các sự cố kết nối với Phiên bản Aurora MySQL RDS

 

Báo cáo sự cố  

Chúng tôi không thể thiết lập kết nối với một trong các kho lưu trữ dữ liệu Aurora MySQL RDS của chúng tôi. Tôi sử dụng MySQL Workbench cục bộ để kết nối với cơ sở dữ liệu AWS và tôi có thể kết nối với mọi cơ sở dữ liệu khác ngoại trừ cơ sở dữ liệu này.   Vui lòng tìm chi tiết lỗi bên dưới —

Mất kết nối với máy chủ MySQL trong khi truy vấn

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?

Làm ơn.
1 Kiểm tra xem MySQL có đang chạy trên địa chỉ *****
2 Kiểm tra xem MySQL có thể truy cập được trên cổng 3306 không (lưu ý. 3306 là giá trị mặc định nhưng có thể thay đổi giá trị này)
3 Kiểm tra xem quản trị viên người dùng có quyền kết nối với ***** từ địa chỉ của bạn (Quyền MySQL xác định những máy khách nào có thể kết nối với máy chủ và .
4 Make sure you are both providing a password if needed and using the correct password for ***** connecting from the host address you’re connecting from.

Đọc qua phần trên có vẻ như có sự cố kết nối giữa máy khách MySQL và máy chủ Cơ sở dữ liệu và kết nối đã hết thời gian chờ trước khi trả về dữ liệu

 

Vấn đề có cụ thể đối với MySQL Workbench không?

  • Mở Tùy chọn bàn làm việc của MySQL
  • Kiểm tra xem giá trị Thời gian chờ SSH và Thời gian chờ DBMS có được đặt thành chỉ vài giây không
  • Cố gắng tăng giá trị mặc định của thời gian chờ kết nối
  • Lưu cài đặt, đóng MySQL Workbench và mở lại kết nối để xem bạn có thể kết nối với cơ sở dữ liệu không

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?

 

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?

 

Bạn đã thử khởi động lại phiên bản Cơ sở dữ liệu chưa?

Khởi động lại một phiên bản CSDL sẽ khởi động lại dịch vụ công cụ cơ sở dữ liệu. Nó sẽ dẫn đến mất điện tạm thời mặc dù

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?

Bạn cũng có thể khởi động lại phiên bản cơ sở dữ liệu bằng AWS CLI —

aws rds reboot-db-instance –db-instance-identifier databasename –profile live –region us-east-1


Đảm bảo kiểm tra trạng thái Cơ sở dữ liệu và xác nhận trạng thái 'Có sẵn'

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?

 


Bạn đã kiểm tra Chỉ số Cloudwatch cho Cụm cơ sở dữ liệu chưa?

Bạn có thể kiểm tra các số liệu của cơ sở dữ liệu Cloudwatch – đặc biệt là DatabaseConnections, EngineUptime và UpdateThroughput như một bước khắc phục sự cố

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?
                     
Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?
          

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?
                       

Trong trường hợp này, có vẻ như sau khi động cơ khởi động lại vào ngày 11/8, đã xảy ra một số sự cố kết nối


Bạn đã kiểm tra Nhật ký lỗi cơ sở dữ liệu chưa?

Bạn có thể xem, tải xuống và theo dõi nhật ký cơ sở dữ liệu bằng bảng điều khiển Amazon RDS

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?

Đây là nơi tôi có thể tìm ra nguyên nhân cốt lõi của lỗi kết nối. Rõ ràng là đã có lỗi trong nhật ký nêu rõ - 'lệnh init_connect không thành công'

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?

Init_connect - Tham số này xác định một chuỗi để máy chủ chạy cho từng máy khách kết nối. Không có giá trị mặc định cho tham số này. Chuỗi bao gồm một hoặc nhiều câu lệnh SQL, được phân tách bằng dấu chấm phẩy

Làm cách nào để khắc phục lỗi 2013 bị mất kết nối với máy chủ mysql trong khi truy vấn?

Tôi đã đề cập đến một giá trị không chính xác  thông số 'init_connect' gây ra sự cố. Khi tôi đã sửa giá trị và áp dụng các thay đổi, tôi có thể kết nối với cơ sở dữ liệu

 

Kết luận  

Tóm tắt bài đăng trên blog này, có một số điều bạn có thể làm để khắc phục sự cố kết nối với cơ sở dữ liệu AWS RDS của mình trong khi cố gắng kết nối cục bộ qua MySQL Workbench —

Tại sao truy vấn bị mất kết nối với máy chủ MySQL?

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.

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

Mạng hỗ trợ . Log in to your server by using Secure Shell® (SSH). Sử dụng lệnh sudo để chỉnh sửa. 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.