Sửa lỗi "can't create/write to file" trên MySQL

Bài viết liên quan

1. Hai thông báo lỗi MySQL

Thông báo lỗi MySQL giống như sau:

can't create/write to file /var/lib/mysql/foo.bar.baz 

Errcode: 23

Tệp thực sự được tham chiếu trong thông báo lỗi đó không quan trọng, vì nó sẽ khác nhau trên hầu hết các hệ thống, thông báo lỗi "can't create/write to file" mới là điều quan trọng.

Sau khi tìm hiểu thông qua log files, bạn cũng có thể tìm thấy thông báo lỗi này liên quan đến MySQL:

Got error 12 from select 

Error in accept: Too many open files in system

Cả hai thông báo lỗi ("can't create/write to file", "too many open files in system") đều liên quan đến cùng một vấn đề: MySQL đang cố mở nhiều tệp trên hệ thống Linux, vượt quá số lượng cho phép khi cấu hình.

Những lỗi khác có liên quan

Trước khi tiến tới phần giải pháp cho các lỗi trên, hãy cùng điểm qua một vài lỗi hiển thị cũng cùng có một nguyên nhân như thế.

Dưới đây là một số thông báo lỗi hiển thị với tiện ích perror:

shell> perror 23 

OS error code 23: File table overflow 

shell> perror 24 

OS error code 24: Too many open files 

shell> perror 11 

OS error code 11: Resource temporarily unavailable

2. Giải quyết nguyên nhân gốc rễ của vấn đề

Có một số cách để giải quyết vấn đề này, nhưng tất cả chúng đều liên quan đến giới hạn  số lượng tệp mà người dùng có thể mở cùng một lúc.

Trong trường hợp của bài viết, chúng ta giải quyết vấn đề này bằng cách thay đổi biến open-files-limit thành một giá trị cao hơn nhiều so với giá trị mặc định. Bạn hãy chỉnh sửa tập tin cấu hình MySQL /etc/my.cnf trên hệ thống CentOS Linux, và thiết lập giá trị như thế này:

[mysqld] 

open-files-limit=2048

Chúc các bạn thành công!

Dịch từ: alvinalexander.com/mysql/mysql-cant-create-write-file-error-message

>> Có thể bạn quan tâm: Liệt kê toàn bộ tác vụ cronjobs các user trên Linux

Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration