Một trong những vấn đề thường xuyên gặp phải khi sử dụng máy tính là các lỗi liên quan đến phần mềm. Đối với những người không chuyên, việc khắc phục các lỗi này có thể rất khó khăn và tốn thời gian. Do đó, bạn cần nắm rõ nguyên nhân và cách xử lý của từng lỗi cụ thể. Trong bài viết này, MONA Host sẽ hướng dẫn bạn cách fix lỗi Mysql Server Has Gone Away, một lỗi thường gặp khi sử dụng cơ sở dữ liệu Mysql.

Lỗi “Mysql Server Has Gone Away” là gì?

Một trong những rắc rối thường gặp khi sử dụng WordPress trên hosting là error Mysql Server Has Gone Away. Đây là lỗi xảy ra khi bạn không thể kết nối được với máy chủ cơ sở dữ liệu trong quá trình thực hiện truy vấn.

Lỗi Mysql Server Has Gone Away

Nguyên nhân gây ra lỗi Mysql Server Has Gone Away

Để khắc phục lỗi mysql server has gone away, chúng ta cần phải xác định rõ nguồn gốc của nó. Dưới đây là 7 nguyên nhân chủ yếu dẫn đến lỗi error 2006 mà bạn cần biết:

Server hết thời gian chờ

Lỗi mysql server has gone away phpmyadmin có nghĩa là kết nối giữa ứng dụng của bạn và máy chủ MySQL đã bị gián đoạn. Điều này có thể xảy ra vì nhiều nguyên nhân, nhưng một trong số đó là do thời gian chờ kết nối quá ngắn.

Thời gian chờ kết nối là tham số cấu hình của MySQL, quy định khoảng thời gian tối đa mà một kết nối được duy trì khi không có hoạt động nào. Nếu ứng dụng của bạn không gửi hoặc nhận dữ liệu từ máy chủ MySQL trong khoảng thời gian này, kết nối sẽ bị đóng lại để giải phóng tài nguyên.

Truy vấn MySQL lỗi

Một nguyên nhân khác có thể gây ra lỗi Mysql Server Has Gone Away là do truy vấn MySQL bị lỗi và dẫn đến việc kết nối bị đóng. Đôi khi, người dùng cũng có thể đóng kết nối một cách cố ý để thực hiện một truy vấn khác liên quan đến việc đóng kết nối.

Timeout từ TCP / IP quá hạn

Một trong những nguyên nhân có thể dẫn đến lỗi error 2006 Mysql Server Has Gone Away là TCP / IP kết nối giữa máy chủ và khách hàng bị gián đoạn do quá hạn timeout. Lỗi hy000 sẽ xuất hiện khi sử dụng các lệnh sau: mysql_options (…, MYSQL_OPT_READ_TIMEOUT, …)mysql_options (…, MYSQL_OPT_WRITE_TIMEOUT, …).

Nguyên nhân lỗi Mysql Server Has Gone Away

Timeout tự động kết nối ở client bị vô hiệu hóa

Khi máy chủ không trả lời yêu cầu của client trong một khoảng thời gian nhất định, error mysql server has gone away sẽ xuất hiện. Khi điều này xảy ra, client có thể tự động kết nối lại với máy chủ hoặc chờ đợi một phản hồi khác. Tuy nhiên, nếu các client khác cũng đang kết nối lại với máy chủ, điều này có thể gây quá tải cho máy chủ và làm cho nó không thể xử lý các yêu cầu mới.

Gửi yêu cầu sai lệch đến máy chủ

Mysqld sẽ từ chối những gói dữ liệu quá lớn hoặc sai lệch so với kỳ vọng. Để khắc phục, người dùng có thể điều chỉnh giới hạn kích thước của các yêu cầu bằng cách thay đổi giá trị max_allowed_packet. Giá trị này mặc định là 1MB, nhưng có thể được tăng lên nếu cần thiết. Đặc biệt, khi làm việc với các cột BLOB có dung lượng lớn, việc tăng giá trị max_allowed_packet sẽ giúp tránh bị ngắt kết nối.

INSERT hoặc thay thế query số lượng quá lớn

Khi gửi quá nhiều yêu cầu cho máy chủ, nó có thể không xử lý được tất cả các hàng một cách hiệu quả. Để khắc phục lỗi, bạn nên chia nhỏ số lượng hàng trong mỗi lời truy vấn INSERT hoặc sử dụng phương pháp thay thế.

Gửi gói dữ liệu quá lớn gây mất kết nối

Sử dụng các client cũ 4.0.8 để gửi gói dữ liệu lớn hơn 16MB sẽ gây ra lỗi Mysql Server Has Gone Away. Đây là do máy chủ yêu cầu phiên bản từ 4.0.8 trở lên để xử lý gói dữ liệu.

-> Xem thêm: Hướng dẫn cài đặt SQL Server 2022 đơn giản, chi tiết nhất

Khắc phục lỗi Mysql Server Has Gone Away nhanh chóng, hiệu quả

MONA đã kể ra nhiều nguyên nhân có thể gây ra lỗi Mysql Server Has Gone kèm theo các hướng giải quyết một số trong số đó. Tuy nhiên, nếu vẫn chưa xác định được nguyên nhân chính xác của lỗi thì bạn có thể xem qua hai phương pháp sau đây để sửa lỗi.

Khắc phục lỗi Mysql Server Has Gone Away

Tăng tạm thời set biến max_connections

Một trong những cách để fix lỗi MySQL server has gone away khi import dữ liệu là tăng giá trị ‘max_allowed_packet‘ trên hệ thống. Chúng ta cần set biến GLOBAL max_allowed_packet cho dịch vụ MySQL đang chạy với giá trị mới là :

32 x 1024 x 1024.

# mysql -u root -p

Nhập mật khẩu:

mysql> SET GLOBAL max_allowed_packet=33554432

Sau đó, chúng ta có thể import dữ liệu lại.

LƯU Ý: không cần phải restart dịch vụ MySQL.

Cấu hình file dịch vụ MySQL

Một cách khác để thay đổi giá trị max_allowed_packet là sửa file /etc/my.cnf. Bằng cách này, khi khởi động lại MySQL, giá trị max_allowed_packet sẽ không bị thay đổi mà giữ nguyên theo ý muốn của chúng ta. Để làm được điều này, chúng ta cần mở file /etc/my.cnfthêm dòng sau vào phần [mysqld]:

max_allowed_packet=32M

Sau đó, chúng ta cần khởi động lại MySQL để áp dụng thay đổi.

Một số ví dụ về lỗi MySQL server has gone away

Một trong những lỗi thường gặp khi làm việc với MySQL là lỗi 2006 MySQL server has gone away. Lỗi này có thể có nhiều nguyên nhân khác nhau, và cũng có nhiều cách để khắc phục. Sau đây MONA sẽ liệt kê một số lỗi nhiều người thường gặp:

Ví dụ về lỗi MySQL server has gone away

MySQL wait_timeout

Một nguyên nhân thường gặp của lỗi này là do giá trị wait_timeout của MySQL quá thấp. Đây là tham số xác định thời gian chờ mà máy chủ sẽ duy trì kết nối với một thiết bị. Giá trị mặc định của wait_timeout là 28800 giây, nhưng bạn có thể thay đổi nó theo ý muốn.

Việc thay đổi wait_timeout không ảnh hưởng đến hiệu suất hoặc tính ổn định của kết nối cơ sở dữ liệu. Ngoài ra, bạn cũng nên kiểm tra các tham số khác như net_read_timeout, net_write_timeout và thêm chúng vào tệp my.cnf để áp dụng các cài đặt mới của bạn.

Lỗi PHP config “MySQL connect timeout”

mysql.connect_timeout không chỉ là thời gian chờ để kết nối với MySQL mà còn là thời gian chờ để nhận được phản hồi đầu tiên từ MySQL. Bạn có thể kiểm tra trạng thái của mysql.allow_persists bằng cách điều chỉnh mysql.connect_timeout sao cho phù hợp hoặc lớn hơn wait_timeout trong MySQL.

Bạn cũng có thể thay đổi default_socket_timeout của PHP.

Ví dụ: Đặt thời gian chờ sử dụng default_socket_timeout cho các tập lệnh PHP chạy lâu. Lỗi “MySQL server has gone away” sẽ được khắc phục.

Ngoài ra, bạn có thể tham khảo thêm một số thông tin về lỗi này:

Tham số thời gian chờ mặc định PHP được cấu hình trong php.ini, default_socket_timeout. Nếu không có tham số thời gian chờ nào khác được đặt thì tham số mặc định này sẽ được áp dụng. Mysqlnd không đặt bất kỳ tham số nào khác và do đó các kết nối của các truy vấn kéo dài có thể bị ngắt sau giây default_socket_timeout, gây ra lỗi 2006 – MySQL Server đã biến mất.”

Nếu cần, bạn cũng có thể điều chỉnh max_execution_time và max_input_time trong php.ini, khi thời gian kết nối với PHP vượt quá max_execution_time, bạn sẽ bị ngắt kết nối bởi MySQL.

MySQL max_allowed_packet

max_allowed_packet dùng để xác định kích thước gói dữ liệu lớn nhất mà MySQL có thể gửi hoặc nhận. Giá trị mặc định của nó là 4MB cho các phiên bản MySQL trước 8.0, và 16MB cho các phiên bản từ 8.0 trở lên. Nếu bạn cố gắng gửi hoặc nhận một tập tin vượt quá giới hạn này, MySQL sẽ ngắt kết nối và báo lỗi. Để khắc phục điều này, bạn cần chỉnh sửa tệp my.cnf và tăng giá trị max_allowed_packet lên một mức phù hợp với nhu cầu của bạn, tối đa là 1GB. Sau đó, bạn phải khởi động lại MySQL để áp dụng thay đổi.

MySQL innodb_log_file_size

Bạn có thể điều chỉnh giá trị của innodb_log_file_size, nhưng nó phải bằng ít nhất 20% và không quá 25% của innodb_buffer_pool_size. Giá trị này càng cao thì thời gian phục hồi dữ liệu khi xảy ra sự cố càng ngắn.

Ví dụ: Nếu bạn thiết lập innodb_buffer_pool_size = 16G và để mặc định innodb_log_files_in_group là ( innodb_log_files_in_group = 2 ), thì bạn nên đặt innodb_log_file_size là 2G. Khi đó, sẽ có 2 tập tin nhật ký có dung lượng là 2GB, tương đương với 25% innodb_buffer_pool_size = 16G.

LƯU Ý: Khi bạn thay đổi innodb_log_file_size hoặc innodb_log_files_in_group, bạn phải dừng MySQL, nếu không sẽ gây ra lỗi cho hệ thống.

-> Xem thêm: Lỗi SSL là gì? 10 cách sửa lỗi SSL khi dùng Chrome và Firefox cực hiệu quả

Hy vọng với bài viết trên của MONA đã giúp bạn có thêm thông tin về lỗi mysql server has gone away. Nếu bạn vẫn còn thắc mắc hoặc muốn biết thêm về các lỗi khác liên quan đến MySQL Server, hãy gửi câu hỏi cho MONA và chúng tôi sẽ hỗ trợ bạn một cách nhanh chóng.

Kết nối với mình qua

Nhà đồng sáng lập, Giám đốc kỹ thuật của Mona Host - một trong những mảng mạnh và đứng đầu thị trường với công nghệ bảo mật an toàn nhất.

Bài viết liên quan

Hướng Dẫn Sửa Lỗi ERR_TOO_MANY_REDIRECTS Trên Wordpress
20 Tháng Chín, 2024
Hướng Dẫn Sửa Lỗi ERR_TOO_MANY_REDIRECTS Trên Wordpress
Lỗi ERR_TOO_MANY_REDIRECTS xảy ra khi trình duyệt bị “mắc kẹt” trong một vòng lặp chuyển hướng liên tục giữa các URL, dẫn đến việc không thể truy cập vào trang web. Để giải quyết vấn đề này, bạn cần xác định và sửa chữa các cài đặt không chính xác hoặc những xung đột xảy...

MONA.Host

NameServer Là Gì? Cách Thay Đổi NameServer Tên Miền Chi Tiết
19 Tháng Chín, 2024
NameServer Là Gì? Cách Thay Đổi NameServer Tên Miền Chi Tiết
Bạn có bao giờ thắc mắc khi gõ địa chỉ web vào trình duyệt, tại sao trang web bạn tìm kiếm lại xuất hiện ngay lập tức? Chìa khóa cho quá trình này chính là NameServer. Khi bạn nhập địa chỉ website vào thanh địa chỉ, NameServer chính là công cụ chuyển đổi tên miền...

MONA.Host

Cache Là Gì? Hướng Dẫn Xóa Bộ Nhớ Cache Chi Tiết
19 Tháng Chín, 2024
Cache Là Gì? Hướng Dẫn Xóa Bộ Nhớ Cache Chi Tiết
Trong quá trình sử dụng thiết bị di động hay máy tính, chắc hẳn bạn đã từng nghe đến thuật ngữ “xóa cache” nhưng có thể chưa hiểu rõ vai trò của hành động này. Cache giúp các ứng dụng và trang web hoạt động nhanh hơn bằng cách lưu trữ dữ liệu tạm thời....

MONA.Host

Linux Hosting Là Gì? Những Lưu Ý Khi Đăng Ký Mua Linux Hosting
17 Tháng Chín, 2024
Linux Hosting Là Gì? Những Lưu Ý Khi Đăng Ký Mua Linux Hosting
Qua nhiều năm, Linux một hệ điều hành mạnh mẽ và linh hoạt ngày càng được nhiều người dùng quan tâm đặc biệt là trong cộng đồng công nghệ. Mặc dù chưa chiếm được thị phần lớn như các đối thủ truyền thống, nhưng Linux vẫn là một lựa chọn đáng cân nhắc. Đối với...

Võ Nguyên Thoại

Network Là Gì? Sự Khác Biệt Giữa Network Và Internet
17 Tháng Chín, 2024
Network Là Gì? Sự Khác Biệt Giữa Network Và Internet
Network là mạng lưới kết nối hàng tỷ thiết bị trên toàn cầu, người dùng có thể chia sẻ thông tin với nhau thông tin, truy cập kiến thức và thực hiện các giao dịch một cách nhanh chóng và thuận tiện thông qua mạng lưới. Vậy, Network là gì? Network hoạt động như thế...

Võ Nguyên Thoại

Sql server là gì? Hướng dẫn cài đặt SQL Server 2022 chi tiết nhất
17 Tháng Chín, 2024
SQL Server Là gì? Các Bước Cài Đặt SQL Server 2022 Chi Tiết Nhất
SQL Server một trong những hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) phổ biến nhất hiện nay, đóng vai trò trung tâm trong việc lưu trữ và quản lý dữ liệu của các doanh nghiệp. Với khả năng xử lý lượng lớn dữ liệu một cách hiệu quả và linh hoạt, SQL...

Võ Nguyên Thoại

Certificate Authority Là Gì? Vai Trò Và Những Lưu Ý Cần Biết Khi Đăng Ký CA
13 Tháng Chín, 2024
Certificate Authority Là Gì? Vai Trò Và Những Lưu Ý Cần Biết Khi Đăng Ký CA
Certificate Authority (CA) là những tổ chức trung gian đáng tin cậy, đảm bảo tính xác thực và đáng tin cậy của các chứng chỉ kỹ thuật số. CA đóng vai trò thiết yếu trong việc bảo vệ giao tiếp trực tuyến và xác minh danh tính. Certificate Authority là gì? Lưu ý cần biết...

Võ Nguyên Thoại

Tên miền info là gì? Nên mua tên miền info ở đâu uy tín?
12 Tháng Chín, 2024
Tên Miền INFO Là Gì? Nên Mua Domain .INFO Ở Đâu Uy Tín?
Tên miền .info là một trong những lựa chọn phổ biến cho các trang web thông tin và tư vấn. Domain .info được lựa chọn phổ biến nhằm xây dựng web cung cấp những thông tin giá trị, đáng tin cậy và chất lượng cho các tổ chức và cá nhân. Tên miền info là...

MONA.Host

Redis cache là gì? Ưu và nhược điểm khi sử dụng Redis cache
11 Tháng Chín, 2024
Redis Cache Là Gì? Ưu Và Nhược Điểm Khi Dùng Redis Cache
Redis cache là một giải pháp lưu trữ dữ liệu tạm thời mạnh mẽ, giúp tăng tốc độ truy xuất và giảm tải cho các hệ thống cơ sở dữ liệu chính. Với khả năng hoạt động như một kho lưu trữ dữ liệu trên bộ nhớ, Redis không chỉ tối ưu hóa hiệu suất...

Võ Nguyên Thoại

Nginx là gì? Hướng dẫn cài đặt và cấu hình Nginx chi tiết
11 Tháng Chín, 2024
Nginx Là Gì? Hướng Dẫn Cài Đặt Và Cấu Hình Nginx Chi Tiết
Nginx ban đầu được tạo ra để giải quyết vấn đề quản lý hàng loạt kết nối đồng thời. Tuy nhiên, qua thời gian phát triển Nginx đã vượt xa mục tiêu ban đầu và trở thành một trong những máy chủ web mạnh mẽ và linh hoạt nhất hiện nay với khả năng xử...

Võ Nguyên Thoại

aaPanel là gì? Hướng dẫn cài đặt và sử dụng aaPanel chi tiết
10 Tháng Chín, 2024
aaPanel là gì? Hướng dẫn cài đặt aaPanel cho VPS
Bạn đang tìm kiếm một công cụ control panel hosting trực quan, dễ sử dụng và hiệu quả? aaPanel chính là lựa chọn lý tưởng, đây là một bảng điều khiển web hosting mã nguồn mở tích hợp nhiều tính năng hữu ích như: cài đặt và quản lý các dịch vụ web (Apache, Nginx, PHP,...

Võ Nguyên Thoại

IPSec Là Gì? Cơ chế vận hành và ứng dụng của IPSec
10 Tháng Chín, 2024
IPSec Là Gì? Cơ Chế Vận Hành Và Ứng Dụng Của IPSec
IPSec, viết tắt của Internet Protocol Security, là một bộ giao thức mạng được thiết kế để bảo vệ dữ liệu truyền qua mạng IP. Nó cung cấp các tính năng bảo mật mạnh mẽ như mã hóa, xác thực và tính toàn vẹn dữ liệu. IPSec đóng vai trò quan trọng trong việc xây...

Võ Nguyên Thoại

Nhận các thông báo mới từ MONA.Host?

Đăng ký để nhận các bài nghiên cứu, blog, thông tin mới nhất từ chúng tôi