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

361
14-08-2018
Sửa lỗi "can't create/write to file" trên MySQL

"can't create/write to file"‏ là một lỗi vô cùng phổ biến khi bạn xử lý hệ thống với công việc export database của server. Đây là một vấn đề khá nhỏ và Bizfly Cloud sẽ hướng dẫn các bạn cách khắc phục trong bài viết sau đây!

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

Theo Bizfly Cloud chia sẻ

>> Có thể bạn quan tâm: SQL là gì? Những thông tin về ngôn ngữ SQL bạn nên biết

TAGS: mysqlsql
SHARE