Trong MySQL, bạn có thể gặp phải lỗi 1153, trong đó thông báo. “Có một gói lớn hơn byte ‘max_allowed_packet’”
Để khắc phục điều này, bạn phải sửa đổi kích thước
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
6 và làm cho nó lớn hơnTừ trình chỉnh sửa truy vấn
SET GLOBAL max_allowed_packet=100000;
Từ dòng lệnh
mysql --max_allowed_packet=100M
Hoặc sửa đổi tệp
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
7 hoặc +--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
8 và đặt dòng này dưới phần [mysqld] trong tệp của bạnmax_allowed_packet=100M
Kích thước tùy thuộc vào bạn, nó càng lớn thì kích thước gói càng lớn được phép. Gói lớn nhất có thể có thể được truyền đến hoặc từ MySQL 8. 0 máy chủ hoặc máy khách là 1GB. Bạn có thể xem thêm từ tài liệu
Cần một Công cụ GUI tốt cho MySQL? .
Hướng dẫn này hướng dẫn cách thay đổi kích thước
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
1 trong máy chủ MySQL. Để tìm hiểu điều đó, chúng tôi sẽ sử dụng hai hệ điều hành Windows 10 và Linux [Ubuntu]Nếu chúng tôi cố tải lên các tệp lớn hơn giá trị mặc định của
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
1, chúng tôi sẽ gặp lỗi cho biết +--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
3Để loại bỏ lỗi này, chúng ta cần thay đổi kích thước của
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
1. Nhưng trước đó, hãy kiểm tra giá trị mặc định của nó như saumysql> SHOW VARIABLES LIKE 'max_allowed_packet';
đầu ra
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
Hiện tại, kích thước của
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
1 là 4MB, bằng 4194304 Byte. Xem xét Tài liệu MySQL, Máy khách và Máy chủ MySQL có kích thước +--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
1 của riêng chúngGiá trị chúng ta thấy ở trên bằng cách sử dụng truy vấn
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
7 là giá trị ở phía Máy chủ MySQL. Cần phải tăng giá trị của +--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
1 nếu chúng tôi muốn xử lý các gói lớn hơnGiả sử chúng tôi muốn thay đổi nó thành 50MB. Chúng tôi có thể làm điều đó bằng cách cập nhật tệp cấu hình ở phía máy chủ [một phần có tên là
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
9 trong tệp mysql --max_allowed_packet=100M
40] cũng như ở phía máy khách [một phần có tên là mysql --max_allowed_packet=100M
41 hoặc mysql --max_allowed_packet=100M
42 trong tệp mysql --max_allowed_packet=100M
40]Chúng tôi cũng có thể thay đổi cài đặt này bằng truy vấn SQL nếu chúng tôi có đặc quyền [quyền]
mysql --max_allowed_packet=100M
44. Làm sao? Thay đổi Kích thước +--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
1 trong Máy chủ MySQL bằng HĐH Windows
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
Mở Windows Command Line và điều hướng đường dẫn cài đặt. Máy chủ MySQL được cài đặt tại
46 nếu bạn không thay đổi vị trí mặc địnhmysql --max_allowed_packet=100M
Chuyển đến thư mục
47 bằng cách sử dụngmysql --max_allowed_packet=100M
48mysql --max_allowed_packet=100M
Gõ
49 để đăng nhập vào MySQL Server. Chúng tôi đang tham gia với tư cách là người dùngmysql --max_allowed_packet=100M
0;mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
Khi chúng tôi vào, hãy thực hiện truy vấn sau để thay đổi kích thước
1 trong Máy chủ MySQL+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
4mysql --max_allowed_packet=100M
Thực hiện lại truy vấn sau để xác nhận thay đổi
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
đầu ra
0+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
Giải pháp được đưa ra bên dưới là sử dụng tệp cấu hình nằm ở đường dẫn mặc định nếu bạn đã cài đặt Máy chủ MySQL ở vị trí mặc định. Đường dẫn của tệp cấu hình là
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
4Mở tệp
40mysql --max_allowed_packet=100M
Tìm kiếm phần
9 và thêm một dòng sau vào phần này+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
lưu và đóng tập tin
Khởi động lại máy chủ MySQL để xem sự thay đổi
Thay đổi kích thước +--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
1 trong Máy chủ MySQL bằng hệ điều hành Ubuntu
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set [0.06 sec]
Sau khi truy cập vào MySQL Server, chúng ta có thể sử dụng các truy vấn tương tự trên Ubuntu mà chúng ta đã sử dụng cho HĐH Windows. Các bước được đưa ra dưới đây
Mở Ubuntu Terminal và sử dụng
8 để đăng nhập với tư cách siêu người dùngmysql> SHOW VARIABLES LIKE 'max_allowed_packet';
Hơn nữa, đăng nhập vào MySQL Server
Bạn nên kiểm tra giá trị mặc định hoặc giá trị trước đó của một biến trước khi thực hiện bất kỳ thay đổi nào. Đối với điều đó, chúng ta có thể sử dụng truy vấn sau
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
đầu ra
7+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
Thực hiện truy vấn sau để cập nhật giá trị của
1 thành 70 MB, là 73400320 byte+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
9+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
Chúng tôi có thể chạy truy vấn
7 để xác nhận xem thay đổi có xảy ra không+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
Nếu bạn là người rất thoải mái khi chỉnh sửa các tệp cấu hình, thì giải pháp sau đây đặc biệt dành cho bạn
Mở tệp cấu hình nằm ở đường dẫn
01+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
2+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
Tìm kiếm
1 trong phần có tên+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
9 và thay đổi giá trị của nó theo lựa chọn của bạn. Nếu không có, hãy thêm dòng sau vào dưới+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
9+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ 1 row in set [0.06 sec]
Làm cách nào để hiển thị max_allowed_packet trong MySQL?
Nhấp vào tab MạngNhập 16M [hoặc bất kỳ kích thước nào bạn muốn] vào hộp chỉnh sửa max_allowed_packet, nhấp vào áp dụng và khởi động lại mysqlHIỂN THỊ BIẾN NHƯ 'max_allowed_packet';max_allowed_packet trong MySQL là gì?
Max_allowed_packet là kích thước tối đa của giao thức mạng MySQL mà máy chủ có thể đọc hoặc tạo . Tham số đi kèm với các giá trị mặc định, tối thiểu và tối đa mà bạn có thể thay đổi theo yêu cầu của mình.Cách tính max_allowed_packet?
Để tính kích thước max_allowed_packet, lấy độ dài byte của cột blob lớn nhất của bạn và nhân với 11 . Để biết thêm chi tiết, xem bài đăng này.Làm cách nào để đặt max_allowed_packet trong RDS?
Đi tới RDS, chọn Nhóm thông số và tạo nhóm mới/chỉnh sửa nhóm hiện có. Tìm kiếm max_allowed_packet và nhập giá trị mới cho nó. Đính kèm nhóm tham số này vào phiên bản RDS .