[MySQL] Fix lỗi “mysqldump: Error: Can’t create/write to file /tmp/..”‏ trên dịch vụ MySQL

134

Chẳng là có hôm đang xử lý hệ thống với công việc export database của 1 con server nọ thì gặp phải thông báo lỗi này của “mysqldump” thì thấy đây cũng là 1 cái lỗi khá phổ biến và linh tinh. Nên giờ mình cũng muốn chia sẻ cái cách khắc phục cho cái vấn đề nhỏ xíu xiu này trong bài viết hôm nay.

Lỗi nó sẽ trông như thế này này.

 
Đọc thông báo lỗi trên thì có thể thấy mysqldump đang cố gắng ghi dữ liệu xuống thư mục /tmp trong quá trình export database nhưng bất thành dù cho mình lưu dữ liệu export ở 1 thư mục khác.

Thậm chí lỗi này còn xảy ra trong MySQL console khi mình sử dụng một số câu lệnh như ‘describe‘. Ví dụ :

 
Nguyên nhân :

Các chương trình dịch vụ MySQL hay 1 số câu lệnh thực thi trong MySQL console luôn cần ghi nội dung các file tạm (temporay file) trong thời gian xử lý hoạt động của chúng vào 1 directory được chỉ định. Mà thông thường mặc định sẽ là directory /tmp/ , nên nếu lúc này user mysql không thể ghi file vào thư mục đó chứng tỏ permission của thư mục /tmp/ đã không đúng mặc định hoặc không cho phép user thao tác ghi (write) trên thư mục đó. Ta sẽ cần phân quyền lại cho chính xác thư mục “/tmp/” này hoặc thư mục tạm được bạn cấu hình cho hoạt động dịch vụ MySQL, ở đây mình sử dụng mặc định /tmp/ làm thư mục tạm cho dịch vụ MySQL nhé.

 
Giải quyết :

Khi mình kiểm tra thì phân quyền của thư mục này là “0755“, không chính xác vì directory /tmp còn có cả đặc tính Sticky Bit và quyền mặc định trên các hệ thống là “777“. Nên bây giờ mình phân quyền lại cho chính xác thì lỗi trên đã được fix. Quyền mặc định của directory “/tmp” là “1777” nhé.

 
Rồi sau đó bạn hãy thử lại các chương trình và lệnh trên nhé. Không cần khởi động lại dịch vụ MySQL.

Đánh giá sao từ người đọc :
[ Tổng : 0 - Trung bình: 0 ]