max_allowed_packet trong myQuery


8

Tôi đã thử tất cả ba phương pháp giải thích ở đây để max_allowed_packet. Nhưng không ai thay đổi giá trị của nó trong MySQL 5.6 của tôi.

Tôi sử dụng show variables like '%max_allowed_packet%'để xem giá trị hiện tại của nó. Nhưng nó luôn luôn như vậy 12582912.

Chỉ thay đổi giá trị của nó trong my.ini là có hiệu quả.

Chuyện gì thế?

Câu trả lời:


17

Bạn có hai giá trị max_allowed_packettrong MySQL:

  • một ở phía khách hàng: [mysql]phần [mysqldump], [client]và nhiều hơn nữa.
  • một bên phía máy chủ: [mysqld]phần.

Giá trị của max_allowed_packetbạn thấy với lệnh show variables like 'max_allowed_packet';là giá trị ở phía máy chủ .

Để tăng giá trị này, bạn phải tăng cả hai mặt: trong tệp cấu hình máy chủ của bạn ( [mysqld]phần trong tệp my.ini của bạn) và trong tệp cấu hình máy khách của bạn (cho dù bạn [client]hoặc [mysql]phần trong tệp my.ini của bạn).

Cài đặt này có thể được thay đổi ở phía máy chủ mà không cần khởi động lại máy chủ nếu bạn có SUPERđặc quyền với lệnh này : mysql> SET GLOBAL max_allowed_packet = numeric;.

Đừng quên thay đổi giá trị ' số ' bằng một giá trị số. Đừng quên thay đổi tệp cấu hình của bạn nếu không giá trị này sẽ được đặt lại khi khởi động lại.


5

Những gì làm việc cho tôi là

  1. Bắt đầu MySQL Workbench 5.6 (đã thử nghiệm lên phiên bản 6.3)
  2. Trong trình điều hướng đi đến tập tin tùy chọn Instance. Nếu tập tin không thể được tìm thấy, sau đó tự tạo nó tại /etc/my.cnf:
# /etc/my.cnf
[mysqld]
  1. Nhấp vào tab Mạng
  2. Nhập 16M (hoặc bất kỳ kích thước nào bạn muốn có) vào max_allowed_packethộp chỉnh sửa, nhấp vào áp dụng và khởi động lại mysql
  3. SHOW VARIABLES LIKE 'max_allowed_packet'; bây giờ sẽ cung cấp 16777216.

Thay thế

Bạn có thể đặt max_allowed_packettrực tiếp trên my.cnftệp như sau:

# /etc/my.cnf
[mysqld]
max_allowed_packet=16M

3

TÀI LIỆU GÓI MAX CHO PHÉP

Giá trị này biểu thị kích thước tối đa của một gói, Bộ đệm thông báo gói được khởi tạo thành các byte net_buffer_length, nhưng có thể tăng lên đến byte max_allowed_packet khi cần. Giá trị này theo mặc định là nhỏ, để bắt các gói lớn (có thể không chính xác). Bạn phải tăng giá trị này nếu bạn đang sử dụng các cột BLOB lớn hoặc chuỗi dài. Nó phải lớn như BLOB lớn nhất bạn muốn sử dụng.

Biến máy chủ này có thể được đặt trên toàn cầu bằng cách chạy truy vấn.

Tuy nhiên, nếu bạn không thay đổi nó trong my.ini/my.cnftệp, giá trị sẽ được đặt lại khi máy chủ khởi động lại, ngay cả khi bạn đặt nó trên toàn cầu.

Để thay đổi cài đặt cho mọi người cho đến khi máy chủ khởi động lại:

THIẾT LẬP GLOBAL max_allowed_packet = 1073741824;

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.