Không thể tạo / ghi vào tệp '/tmp/#sql_xxxx.MYI' (Mã số: 13)


9

Tôi đã cài đặt Debian Lenny, PHPmyadmin và postfix.

Khi sử dụng PHPmyadmin GUI và truy cập bất kỳ bảng nào có dữ liệu tôi nhận được:

Không thể tạo / ghi vào tệp '/tmp/#sql_xxxx.MYI' (Mã số: 13)

làm perror 13 nói:

OS error code  13:  Permission denied

Tôi tìm thấy tmpdir như vậy:

mysqladmin -p variables | grep -w tmpdir
| tmpdir                          | /tmp

Bây giờ điều đó có nghĩa là mysql không thể ghi vào / tmp. Làm cho các quyền để: 777 sửa lỗi đó. Nhưng tôi không cảm thấy đúng tôi phải làm điều đó. Có cách nào tốt hơn / sửa chữa không?

Tôi có nên thay đổi giá trị tmpdir trong /etc/mysql/my.cnf?


cảm ơn vì đã bao gồm đầu ra mysqladmin. Bây giờ tôi đã sử dụng điều này để tặng một tmpdir chuyên dụng cho mysql, thêm một chút bảo mật.
Florian Heigl

Câu trả lời:


20

Có vẻ như quyền của bạn trên / tmp là sai. Chúng thực sự nên được đọc / ghi / thực thi cho mọi người với tập bit dính.

chmod 1777 /tmp

Bit dính thêm một số hạn chế về cách người dùng khác tương tác với các tệp không được tạo hoặc sở hữu bởi họ, vì vậy không có lý do gì để lo lắng.

Nếu bạn muốn, bạn cũng có thể tạo một thư mục riêng được sở hữu và ghi bởi người dùng mysql và chỉ định thư mục đó trong my.cnf sẽ được sử dụng thay vì hệ thống wide / tmp.


Cảm ơn bạn rất nhiều vì điều này: "chmod 1777 / tmp" bit dính 1 là thứ tôi không biết và nó đã giết tôi vì tôi đã mất rất nhiều thời gian vì không biết tại sao. Bây giờ tôi làm Cảm ơn vì đã đăng "chmod 1777 / tmp" này

3

Normaly thư mục / tmp có thể ghi cho tất cả mọi người. Bạn không nên lo lắng về điều này. Bổ sung bit dính được thiết lập để chỉ root và chủ sở hữu của một tệp có thể xóa tệp đó.

chmod 777 / tmp
chmod o + t / tmp

Chúc một ngày tốt lành


Có ai biết số bát phân cho bit dính không?
grub

Đúng, đó là 1 trên bát phân đầu tiên.
Roy
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.