Làm cách nào để thay đổi max_allowed_packet trong MySQL?

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ơn

Từ 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ạn

max_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ư sau

mysql> 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úng

Giá 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ơn

Giả 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

  1. 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

    mysql --max_allowed_packet=100M
    
    46 nếu bạn không thay đổi vị trí mặc định

  2. Chuyển đến thư mục

    mysql --max_allowed_packet=100M
    
    47 bằng cách sử dụng
    mysql --max_allowed_packet=100M
    
    48

  3. mysql --max_allowed_packet=100M
    
    49 để đăng nhập vào MySQL Server. Chúng tôi đang tham gia với tư cách là người dùng
    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    
    0;

  4. Khi chúng tôi vào, hãy thực hiện truy vấn sau để 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

    mysql --max_allowed_packet=100M
    
    4

  5. 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

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set [0.06 sec]
    
    0

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';
4

  1. Mở tệp

    mysql --max_allowed_packet=100M
    
    40

  2. Tìm kiếm phần

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set [0.06 sec]
    
    9 và thêm một dòng sau vào phần này

  3. lưu và đóng tập tin

  4. 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

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

  1. Mở Ubuntu Terminal và sử dụng

    mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
    
    8 để đăng nhập với tư cách siêu người dùng

  2. Hơn nữa, đăng nhập vào MySQL Server

  3. 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

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set [0.06 sec]
    
    7

  1. Thực hiện truy vấn sau để cập nhật giá trị của

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set [0.06 sec]
    
    1 thành 70 MB, là 73400320 byte

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set [0.06 sec]
    
    9

  2. Chúng tôi có thể chạy truy vấn

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set [0.06 sec]
    
    7 để xác nhận xem thay đổi có xảy ra không

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

  1. Mở tệp cấu hình nằm ở đường dẫn

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set [0.06 sec]
    
    01

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set [0.06 sec]
    
    2

  2. Tìm kiếm

    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 4194304 |
    +--------------------+---------+
    1 row in set [0.06 sec]
    
    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

    Làm cách nào để hiển thị max_allowed_packet trong MySQL?

    Nhấp vào tab Mạng
    Nhậ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 mysql
    HIỂ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 .

Chủ Đề