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

Mình là Võ Nguyên Thoại, hiện tại đang là Co-founder và CTO của MONA Host - công ty chuyên cung cấp các dịch vụ cloud hosting, vps và hạ tầng thuộc phân khúc cao cấp tại thị trường Việt Nam, đồng thời cũng là Group CTO của The MONA, công ty chủ quản của MONA Media, MONA Software và MONA Host, với hệ sinh thái đầy đủ và hoàn chỉnh để phát triển doanh nghiệp trên môi trường internet.

Với kinh nghiệm làm việc chuyên sâu hơn 15 năm trong lĩnh vực CNTT, trải dài từ mảng hạ tầng, hệ thống, phát triển phần mềm và devops, Thoại mong muốn đóng góp các kinh nghiệm và kiến thức của mình tại Mona để xây dựng một hạ tầng CNTT với các trải nghiệm mới, cao cấp hơn, mượt mà hơn, tin cậy hơn và xoá bỏ khoảng cách giữa các doanh nghiệp và công cuộc chuyển đổi số với đội ngũ chuyên viên kỹ thuật cao luôn hỗ trợ khách hàng 24/7.

Hy vọng với những kiến thức, hiểu biết Thoại chia sẻ sẽ hữu ích đến các bạn độc giả quan tâm!

Bài viết liên quan

Edge Computing Là Gì? Tổng Quan Về Mô Hình Điện Toán Biên
15 Tháng Mười, 2024
Edge Computing Là Gì? Tổng Quan Về Mô Hình Điện Toán Biên
Sự bùng nổ của Internet of Things tạo ra lượng dữ liệu khổng lồ làm cho hệ thống xử lý dữ liệu truyền thống phải đối mặt với nhiều thách thức khi xử lý và quản lý dữ liệu. Mô hình điện toán biên (Edge Computing) được phát triển như một giải pháp tối ưu...

Võ Nguyên Thoại

TLD Là Gì? Mục Đích Và Ý Nghĩa Của Top Level Domain Phổ Biến
14 Tháng Mười, 2024
Top Level Domain Là Gì? Mục Đích Và Ý Nghĩa Của TLD Phổ Biến
Các đuôi tên miền phổ biến như .com, .vn, hay .org chính là các phần mở rộng của tên miền, hay còn gọi là TLD, viết tắt của từ Top-Level Domain (tên miền cấp cao). TLD là một trong những yếu tố quan trọng trong việc xây dựng thương hiệu trực tuyến, cải thiện khả...

Võ Nguyên Thoại

So Sánh IPv4 Và IPv6: Địa chỉ IPv4 vs Địa Chỉ IPv6 Cái Nào Nhanh Hơn?
10 Tháng Mười, 2024
So Sánh IPv4 Và IPv6: Địa chỉ IPv4 vs Địa Chỉ IPv6 Cái Nào Nhanh Hơn?
IPv4 và IPv6 đóng vai trò quan trọng trong việc xác định và phân phối dữ liệu giữa các thiết bị trên mạng. Vậy thì thực chất IPv4 là gì và IPv6 là gì?. Ngay trong bài viết này, hãy cùng MONA Host tìm hiểu hai khái niệm này và những điểm khác biệt rõ...

Võ Nguyên Thoại

Mạng LAN
09 Tháng Mười, 2024
Mạng LAN là gì? Công dụng và ứng dụng của mạng LAN
Internet ngày càng phát triển được sử dụng phổ biến và đóng vai trò quan trọng trong đời sống hiện đại ngày nay. Mạng máy tính có nhiều mô hình khác nhau như WAN, LAN, MAN,...Trong số đó mạng LAN là mô hình mạng rộng rãi được dùng để kết nối các thiết bị trong...

Võ Nguyên Thoại

Thời Gian Downtime Là Gì? Nguyên Nhân Và Cách Khắc Phục Downtime Hiệu Quả
05 Tháng Mười, 2024
Downtime là gì? Cách khắc phục thời gian Downtime hiệu quả
Bất cứ website nào cũng có thể gặp phải tình trạng "downtime". Đây là khoảng thời gian mà website ngừng hoạt động khiến người dùng không thể truy cập được. Mặc dù tình trạng downtime chỉ diễn ra trong một khoảng ngắn nhưng có thể gây ra những hậu quả đáng kể cho doanh nghiệp....

Võ Nguyên Thoại

XSS Là Gì? Cách Kiểm Tra Và Ngăn Chặn Tấn Công XSS
04 Tháng Mười, 2024
XSS là gì? Cách kiểm tra và ngăn chặn tấn công XSS
XSS là một lỗ hổng bảo mật phổ biến trên ứng dụng web, đây là hình thức tấn công chèn mã độc vào website của người dùng thông qua trang web khác. Cross site scripting không chỉ làm rò rỉ thông tin cá nhân mà kẻ tấn công còn lợi dụng nhằm chiếm đoạt quyền...

Võ Nguyên Thoại

Tìm hiểu Ubuntu là gì
03 Tháng Mười, 2024
Ubuntu là gì? Đặc điểm và cách sử dụng hệ điều hành Ubuntu
Với sự đa dạng trong ứng dụng và khả năng tùy biến cao, hệ điều hành mã nguồn mở Ubuntu đã trở thành lựa chọn hàng đầu được nhiều người sử dụng. Vậy thì Ubuntu là gì? Hệ điều hành này có những điểm gì nổi bật so với Windows và cách sử dụng Ubuntu...

Võ Nguyên Thoại

Peer To Peer Là Gì? Đặc Điểm Và Ứng Dụng Mạng Ngang Hàng P2P
01 Tháng Mười, 2024
Peer To Peer Là Gì? Đặc Điểm Và Ứng Dụng Mạng Ngang Hàng P2P
Khác với các mô hình truyền thống nơi dữ liệu được gửi qua một máy chủ trung gian thì mạng Peer to peer cho phép các thiết bị kết nối trực tiếp với nhau, tạo ra một hệ thống phân tán hiệu quả. Peer to peer không chỉ được áp dụng trong việc chia sẻ...

Võ Nguyên Thoại

TTL Là Gì? Cách Hoạt Động Của Time To Live
30 Tháng Chín, 2024
TTL Là Gì? Cách Hoạt Động Của Time To Live
TTL (Time to live) là thông số kỹ thuật biểu thị thời gian tồn tại của một gói dữ liệu trước khi bị xóa trên internet, đảm bảo gói tin ấy không tồn tại vĩnh viễn và gây ra tắc nghẽn hệ thống. Trong bài viết này MONA Host chia sẻ sâu hơn TTL là...

Võ Nguyên Thoại

Tên Miền .XYZ Là Gì? Lợi Ích Khi Đăng Ký Tên Miền XYZ
26 Tháng Chín, 2024
Tên miền .XYZ là gì? Lợi ích khi đăng ký tên miền .XYZ
Ngay từ những ngày đầu tiên khi vừa được ra mắt vào năm 2014, tên miền .xyz đã lập tức nhận được sự chú ý từ đông đảo người dùng internet trên toàn thế giới bởi sự độc đáo và mới mẻ. Vào tháng 11 năm 2015, tức là chỉ hơn một năm sau, tổng...

Võ Nguyên Thoại

Iptables Là Gì? Hướng Dẫn Cấu Hình Và Thiết Lập
24 Tháng Chín, 2024
Iptables là gì? Cách cấu hình và thiết lập Iptables trên Linux Firewall
Sự phát triển không ngừng của các cuộc tấn công mạng khiến việc bảo vệ hệ thống máy chủ trở thành một nhiệm vụ “sống còn” đối với các nhà quản trị. Từ việc chặn lưu lượng truy cập không mong muốn đến bảo vệ chống lại các mối đe dọa từ bên ngoài, IPtables...

Võ Nguyên Thoại

Private Cloud Là Gì? Tổng Hợp Kiến Thức Về Private Cloud Chi Tiết
23 Tháng Chín, 2024
Private Cloud là gì? Ưu nhược điểm và phân loại Private Cloud
Private Cloud là môi trường điện toán đám mây phổ biến được nhiều doanh nghiệp / tổ chức sử dụng hiện nay. Mô hình máy chủ ảo dùng riêng là giải pháp toàn diện giúp doanh nghiệp quản lý hạ tầng và lưu trữ dữ liệu ở mức bảo mật cao nhất. Trong bài viết...

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