Hướng dẫn how do i fix error code 2006 mysql server has gone away? - làm cách nào để sửa mã lỗi máy chủ mysql 2006 đã biến mất?

Đây là một giải pháp thay thế cho việc chỉnh sửa tệp

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
6. Bạn có thể đặt giá trị biến toàn cầu MySQL thông qua việc đăng nhập vào máy chủ MySQL.

Bạn có thể kiểm tra danh sách tất cả các biến toàn cầu MySQL và giá trị của chúng bằng lệnh sau:

$> mysqladmin variables -u YourMysqlUsername -p

Bạn cũng có thể kiểm tra giá trị biến này bằng cách đăng nhập trước tiên vào máy chủ MySQL:

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;

Để kiểm tra giá trị biến cụ thể:

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';

Để giải quyết lỗi MYSQL Server đã biến mất, bạn cần tăng giá trị của biến

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
7.MySQL Server Gone Away error, you need to increase the value of
$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
7 variable.

mysql> SET GLOBAL max_allowed_packet=1072731894;
mysql> quit

Bây giờ, khi bạn một lần nữa đăng nhập vào MySQL và kiểm tra giá trị

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
7, bạn sẽ thấy giá trị được cập nhật.

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| max_allowed_packet | 1072731136 |
+--------------------+------------+
1 row in set (0.00 sec)

Máy chủ MySQL đã biến mất lỗi, điều đó có nghĩa là máy chủ MySQL (MySQLD) đã hết thời gian và đóng kết nối. Theo mặc định, MySQL sẽ đóng kết nối sau tám giờ (28800 giây) nếu không có gì xảy ra. Tuy nhiên, trong một số trường hợp, máy chủ web, DBA hoặc nhà phát triển ứng dụng của bạn có thể đã giảm cài đặt thời gian chờ này, như được thảo luận dưới đây.

Máy chủ MySQL đã biến mất, có thể là một lỗi khó chịu để giải quyết. Điều này một phần là do, để giải quyết lỗi này, đôi khi giải pháp liên quan đến nhiều lớp, ứng dụng hoặc thay đổi cấu hình dịch vụ. Bài viết này bao gồm các giải pháp mà tôi đã thấy cho lỗi chung của máy chủ MySQL này. Nếu bạn đã tìm thấy một giải pháp không được liệt kê hoặc liên kết trên trang này, vui lòng gửi cho tôi một ghi chú hoặc để lại nhận xét.

Hướng dẫn how do i fix error code 2006 mysql server has gone away? - làm cách nào để sửa mã lỗi máy chủ mysql 2006 đã biến mất?

Máy chủ MySQL đã biến mất các ví dụ về nhật ký lỗi.

Hãy nhớ rằng lỗi này có thể được đăng nhập theo một vài cách, như được liệt kê dưới đây. Ngoài ra, đôi khi, lỗi chỉ là một dấu hiệu của một vấn đề cơ bản sâu hơn. Có nghĩa là lỗi có thể là do vấn đề hoặc lỗi trong ứng dụng kết nối hoặc dịch vụ từ xa của bạn. Trong trường hợp đó, bạn cần kiểm tra tất cả các nhật ký lỗi liên quan với cùng một dấu thời gian để xác định xem một vấn đề khác có thể là đáng trách hay không. Các giải pháp giám sát hiệu suất ứng dụng và các công cụ theo dõi ngăn xếp PHP có thể giúp ích. Với suy nghĩ này, đây là các ví dụ về nhật ký lỗi của máy chủ MySQL đã biến mất lỗi:

General error: 2006 MySQL server has gone away
Error Code: 2013. Lost connection to MySQL server during query
Warning: Error while sending QUERY packet
PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

Được tài trợ: & nbsp; datadog & nbsp; - xem bên trong bất kỳ ngăn xếp nào, bất kỳ ứng dụng nào, ở bất kỳ quy mô nào, mọi nơi. Datadog là một nền tảng giám sát, phân tích và bảo mật thống nhất cung cấp giám sát từ đầu đến cuối cho các ứng dụng Linux của bạn cùng với các số liệu và sự kiện từ hơn 450 công nghệ khác để có cái nhìn thống nhất về toàn bộ cơ sở hạ tầng của bạn. Với giám sát cơ sở hạ tầng tương quan, giám sát hiệu suất ứng dụng, quản lý nhật ký, công cụ bảo mật, v.v. thời gian.

Hướng dẫn how do i fix error code 2006 mysql server has gone away? - làm cách nào để sửa mã lỗi máy chủ mysql 2006 đã biến mất?

Datadog is a unified monitoring, analytics, and security platform that offers end-to-end monitoring for your Linux applications alongside metrics and events from 450+ other technologies for a unified view of your entire infrastructure. With correlated infrastructure monitoring, application performance monitoring, log management, security tools, and more, Datadog enables Dev, Ops, and Security teams to work collaboratively to help organizations avoid downtime, resolve performance problems fast, and ensure that development and deployment cycles finish on time.

Chi phí: & nbsp; kế hoạch miễn phí, hoặc từ $ 15 hàng tháng.

MySQL Wait_Timeout

Lý do cho máy chủ MySQL đã biến mất thường xuyên là do MySQL Lừa Wait_timeout vượt quá. MySQL Wait_Timeout là số giây mà máy chủ chờ hoạt động trên kết nối không tương tác trước khi đóng nó. Bạn nên đảm bảo & nbsp; Wait_Timeout & nbsp; không được đặt quá thấp. Mặc định cho mysql wait_timeout là & nbsp; 28800 giây. Thông thường, nó bị hạ thấp tùy ý. Điều đó nói rằng, bạn có thể đặt & nbsp; Wait_Timeout thấp hơn mà không ảnh hưởng đến các kết nối cơ sở dữ liệu, có thể là một dấu hiệu tốt cho hiệu quả cơ sở dữ liệu MySQL. Ngoài ra, hãy kiểm tra các biến: & nbsp; net_read_timeout, & nbsp; net_write_timeout & nbsp; và & nbsp; interactive_timeout. Điều chỉnh hoặc thêm các dòng sau trong & nbsp; my.cnf để đáp ứng các yêu cầu của bạn:

wait_timeout=90
net_read_timeout=90
net_write_timeout=90
interactive_timeout=300
connect_timeout=90

MySQL Kết nối thời gian chờ trong cấu hình PHP.

Hãy xem tệp cấu hình php.ini của bạn. Bạn sẽ tìm thấy các tùy chọn cấu hình MySQL. Đảm bảo & nbsp; mysql.connect_timeout Cài đặt không được đặt thấp hơn mysql wait_timeout, đã thảo luận ở trên. Nó cũng là khi chờ phản hồi đầu tiên từ máy chủ MySQL. & NBSP; hãy thử tăng & nbsp; mysql.connect_timeout để khớp hoặc vượt quá MySQL Wait_Timeout của bạn và đảm bảo rằng mysql.allow_persistent & nbsp;

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
0

QUAN TRỌNG: Đọc đầu tiên về các kết nối cơ sở dữ liệu liên tục & nbsp; để hiểu các lợi ích và & nbsp; hãy cẩn thận. Read first about PHP Persistent Database Connections to understand the benefits and caveats.

Ngoài ra, điều chỉnh PHP từ & nbsp; default_socket_timeout. & Nbsp; ví dụ: tập lệnh PHP có thể đang chạy một truy vấn chậm. Tạo một sự chờ đợi sử dụng default_socket_timeout. Cuối cùng, nó thoát khỏi máy chủ MySQLL đã biến mất lỗi. Trước khi bạn gửi thư ghét, xin vui lòng đọc ở đây trước. Ở đây, một đoạn trích:

Theo mặc định, PHP, đặt thời gian chờ đọc là 60 giây cho các luồng. Điều này được đặt thông qua & nbsp; php.ini, & nbsp; default_socket_timeout. Mặc định này áp dụng cho tất cả các luồng không đặt giá trị thời gian chờ khác. xa."connections of long running queries can be disconnected after default_socket_timeout seconds resulting in an error message 2006 – MySQL Server has gone away.”

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
1

Để được xuyên suốt, cũng điều chỉnh & nbsp; max_execut_time và & nbsp; max_input_time vẫn còn trong php.ini, nếu cần.

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
2

Mysql max_allowed_packet

MAX_ALLOWED_PACKET là kích thước tối đa của một gói. Kích thước mặc định là 4MB giúp máy chủ MySQL bắt được các gói lớn (có thể không chính xác). Kể từ MySQL 8, mặc định đã được tăng lên 16MB. Nếu MySQLD nhận được một gói quá lớn, thì nó giả định rằng có điều gì đó không ổn và đóng kết nối. Để khắc phục điều này, bạn nên tăng max_allowed_packet & nbsp; trong my.cnf, sau đó khởi động lại mysql. & Nbsp; tối đa cho cài đặt này & nbsp; là 1GB. Ví dụ:max_allowed_packet in my.cnf, then restart MySQL. The max for this setting is 1GB. For example:

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
3

Mysql innodb_log_file_size

Bạn có thể cần phải tăng & nbsp; innodb_log_file_size & nbsp; biến MySQL trong cấu hình My.cnf của bạn. Mysql từ & nbsp; innodb_log_file_size & nbsp; phải là 25% của & nbsp; innodb_buffer_pool_size (nếu có thể, không dưới 20%). Hãy nhớ rằng giá trị này càng lớn, sẽ càng mất nhiều thời gian để phục hồi sau sự cố cơ sở dữ liệu. (Nguồn: Cố vấn phpmyadmin)

Điều này có nghĩa là: Nếu kích thước nhóm đệm của bạn được đặt thành innodb_buffer_pool_size = 16g & nbsp; và của bạn Điều này sẽ tạo hai (2) tệp nhật ký ở mức 2GB mỗi tệp, bằng 25% & nbsp; innodb_buffer_pool_size = 16g.=16G and your innodb_log_files_in_group setting is still set to the recommended default of 2 files (innodb_log_files_in_group=2), then your innodb_log_file_size should be set to 2G. This will create two (2) log files at 2GB each, which equals 25% of innodb_buffer_pool_size=16G.

Cảnh báo: & nbsp; bạn phải dừng máy chủ mysql để thay đổi & nbsp; innodb_log_file_size hoặc & nbsp; innodb_log_files_in_group. Nếu bạn don, bạn có nguy cơ thảm họa! (Đọc: Hướng dẫn làm lại nhật ký MySQL.)You must stop MySQL server in order to change innodb_log_file_size or innodb_log_files_in_group. If you don’t, you risk catastrophe! (Read: MySQL Log Redo instructions.)

Các nguyên nhân khác của & nbsp; máy chủ mysql đã biến mất

Kết nối MySQL từ xa

Hãy nhớ trước đó tôi đã đề cập rằng lỗi, đôi khi, chỉ là một dấu hiệu của một vấn đề cơ bản sâu hơn. Ví dụ: các kết nối MySQL từ xa đến các dịch vụ của bên thứ 3. Sử dụng & nbsp; xử lý thanh toán của bên thứ 3 & nbsp; plugin cho oscommerce, magento, v.v.

Charset và đối chiếu cơ sở dữ liệu MySQL

Thay đổi Charset cơ sở dữ liệu mặc định thành Latin1 và đối chiếu mặc định thành Latin1_General_Ci dường như đã giải quyết & NBSP; Máy chủ MySQL đã biến mất cho một số người.

Vượt quá cài đặt mysql max_connections

Max_Connections Đặt số lượng kết nối máy khách đồng thời được phép tối đa. Hãy cẩn thận với cài đặt này !! Kiệt sức bộ nhớ và các tài nguyên khác có thể xảy ra khi đặt quá lớn và chi phí lên lịch cũng tăng lên. Theo hướng dẫn, đặt MAX_Connections lên xấp xỉ gấp đôi số lượng kết nối máy khách đồng thời tối đa trước đó. Ví dụ: nếu sau một tháng hoạt động, kết nối máy khách đồng thời tối đa là 114, sau đó được đặt thành MAX_CONNONTECTERS = 250. Trước khi bạn phát điên với cài đặt này, vui lòng đọc: Cách MySQL xử lý các kết nối khách hàng.

Vẫn chưa được giải quyết? Xem trang trợ giúp MySQL.

Oracle đã tập hợp một trang tự giúp đỡ tốt đẹp cho & NBSP; Máy chủ MySQL đã biến mất. Trên trang đó, họ cũng đề nghị bạn đảm bảo MySQL đã không dừng/khởi động lại trong quá trình truy vấn. Đoạn trích:

Bạn có thể kiểm tra xem máy chủ MySQL đã chết và khởi động lại bằng cách thực thi & nbsp; phiên bản mysqladmin & nbsp; và kiểm tra thời gian hoạt động của máy chủ. Nếu kết nối máy khách bị hỏng vì & nbsp; mysqld & nbsp; bị sập và khởi động lại, bạn nên tập trung vào việc tìm lý do cho vụ tai nạn.mysqladmin version and examining the server’s uptime. If the client connection was broken because mysqld crashed and restarted, you should concentrate on finding the reason for the crash.”

$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
4
$> mysql -u YourMysqlUsername -p

mysql> SHOW VARIABLES;
5

Tôi hi vọng cái này giúp được!


Những bài viết liên quan:

  • Điều chỉnh hiệu suất MySQL: Mẹo, tập lệnh và công cụ
  • Điều chỉnh MySQL: My.cnf, Tránh cạm bẫy phổ biến này!
  • Hiệu suất MySQL: Ngừng tích trữ. Thả cơ sở dữ liệu MySQL không sử dụng

Xuất bản: ngày 7 tháng 6 năm 2019 | Cập nhật lần cuối: ngày 10 tháng 11 năm 2022

Tags: APM, Linux, MariaDB, MySQL, Performance, Server, Sysadmins

Tại sao máy chủ MySQL đã biến mất?

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. Trong trường hợp này, bạn thường nhận được một trong các mã lỗi sau (mà bạn nhận được phụ thuộc vào hệ điều hành). Khách hàng không thể gửi câu hỏi đến máy chủ.the server timed out and closed the connection. In this case, you normally get one of the following error codes (which one you get is operating system-dependent). The client couldn't send a question to the server.

Làm cách nào để sửa lỗi mysql?

Có năm phương pháp bạn có thể cố gắng khắc phục lỗi MySQL 1064 khi gặp phải nó, tùy thuộc vào nguyên nhân rất có thể của nó:..
Đúng lệnh sai ..
Thay thế các lệnh lỗi thời ..
Chỉ định các từ dành riêng ..
Thêm dữ liệu bị thiếu ..
Chuyển cơ sở dữ liệu WordPress ở chế độ tương thích ..

Làm cách nào để sửa chữa máy chủ mysql đã biến mất WordPress lỗi?

Ví dụ, máy chủ MySQL đã biến mất lỗi, có thể khiến bạn tin rằng cơ sở dữ liệu của bạn đã bị mất ...
Chỉnh sửa WordPress WP-DB của bạn.Tệp PHP ..
Sửa chữa cơ sở dữ liệu WordPress của bạn ..
Khôi phục trang web của bạn bằng cách sử dụng sao lưu thông qua nhà cung cấp dịch vụ lưu trữ của bạn ..

Làm cách nào để kết nối lại với mysql?

Để đảm bảo điều này, hãy gọi mysql_options () với tùy chọn mysql_opt_reconnect: my_bool kết nối lại = 0;mysql_options (& mysql, mysql_opt_reconnect, & kết nối lại);Nếu kết nối đã giảm, hiệu ứng của mysql_ping () phụ thuộc vào trạng thái tự động kết nối.Nếu tự động kết nối lại được bật, mysql_ping () sẽ thực hiện kết nối lại.call mysql_options() with the MYSQL_OPT_RECONNECT option: my_bool reconnect = 0; mysql_options(&mysql, MYSQL_OPT_RECONNECT, &reconnect); If the connection has gone down, the effect of mysql_ping() depends on the auto-reconnect state. If auto-reconnect is enabled, mysql_ping() performs a reconnect.