Đã bạn nào dùng Joomla, WordPress hay bất cứ mã nguồn nào lúc đang làm trong quản trị, khi muốn save lại mà nó lại hiện cái lỗi to đùng: “Out of sort memory, consider increasing sort buffer size”. Điều hài hước là nó hiện lỗi thế nhưng nó vẫn lưu được dữ liệu cho bạn. Tuy nhiên, mình vẫn nên sửa lỗi này để nó không hiện nữa, đúng không nhỉ. Bài viết này Biên Thùy hướng dẫn các bạn fix lỗi “Out of sort memory, consider increasing sort buffer size”.
Lỗi này gây ra khi bạn cấu hình MySQL mà để sort_buffer_size có giá trị quá nhỏ. Sort_buffer_size nó điều khiển sort buffer khi muốn xếp thứ tự một bảng, một table nào đó … Thông thường trên MySQL hay MariaDB, sort_buffer_size được gán cho thông số tự động hoặc không được gán. Vì vậy nhiều server có sort_buffer_size nhỏ gây nên lỗi Out of sort memory, consider increasing sort buffer size trong một số trường hợp dữ liệu gửi đi quá lớn và nhiều trường cần sắp xếp.
Cách fix lỗi “Out of sort memory, consider increasing sort buffer size”:
Nó không khó khăn như bạn tưởng, và nó cũng không phải lỗi code như bạn nghĩ. Đơn giản, lỗi này bị gây ra do giá trị sort_buffer_size được set quá thấp trong file config của MySQL (thường là /etc/my.cnf ).
Vậy cách sửa lỗi này chỉ đơn giản là mở file config MySQL của bạn ra. Đa số nó nằm trong /etc/my.cnf. Nếu nó không nằm ở đó, bạn hãy chạy lệnh này trong command để tìm:
/usr/libexec/mysqld --help --verbose
Lệnh đó sẽ trả về một trang mà trên đầu trang bạn có thể tìm thấy thông số đại loại thế này:
Default options are read from the following files in the given order: /etc/mysql/my.cnf /usr/etc/my.cnf
Nhìn vào đó bạn sẽ biết được MysQL đang ưu tiên chạy file cấu hình nào để mở.
Tiếp theo, khi đã tìm được file my.cnf, mở nó ra bằng bất cứ trình soạn thảo nào (vi, nano … ), sau đó tìm đến đoạn có:
sort_buffer_size = 128K
Bạn sẽ thấy, thường thì khi gặp lỗi tức là giá trị sort_buffer_size quá nhỏ. Bạn hãy tăng gấp 2, gấp 3, thậm chí tăng gấp 10 lần nó lên.
Ví dụ bên trên khi mình gặp lỗi Out of sort memory trong Joomla 3.8 là do sort_buffer_size = 128K, mình thử tăng sort_buffer_size = 512K thì mọi chuyện lại ổn thỏa bình thường.
Tùy vào tình hình cụ thể, bạn có thể tăng tùy vào nhu cầu và cấu hình server của bạn.
sort_buffer_size = 128K nghĩa là 128 Kilobytes
sort_buffer_size = 128M nghĩa là 128 Megabytes
Con số 128 thì bạn có thể điều chỉnh cho phù hợp, ví dụ 256, 512, 1024, 2048 …