ไม่สามารถสร้าง / เขียนไฟล์ '/tmp/#sql_xxxx.MYI' (Errcode: 13)


9

ฉันได้ติดตั้ง Debian Lenny, PHPmyadmin และ postfix แล้ว

เมื่อใช้ PHPmyadmin GUI และเข้าถึงตารางใด ๆ กับข้อมูลที่ฉันได้รับ:

ไม่สามารถสร้าง / เขียนไฟล์ '/tmp/#sql_xxxx.MYI' (Errcode: 13)

ทำ perror 13 พูดว่า:

OS error code  13:  Permission denied

ฉันพบว่า tmpdir นั้นเป็นเช่นนั้น:

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

ตอนนี้หมายความว่า mysql ไม่สามารถเขียนไปยัง / tmp ทำให้สิทธิ์ในการ: 777 แก้ไขที่ แต่ฉันรู้สึกไม่ถูกต้องฉันต้องทำอย่างนั้น มีวิธีที่ดีกว่า / แก้ไข?

ฉันควรเปลี่ยนค่า tmpdir /etc/mysql/my.cnfหรือไม่


ขอบคุณสำหรับการรวมเอาท์พุท mysqladmin ตอนนี้ฉันใช้สิ่งนี้เพื่อบริจาค tmpdir เฉพาะสำหรับ mysql ซึ่งเพิ่มความปลอดภัยเล็กน้อย
Florian Heigl

คำตอบ:


20

ดูเหมือนว่าสิทธิ์ของคุณใน / tmp นั้นผิด พวกเขาควรจะอ่าน / เขียน / ดำเนินการสำหรับทุกคนด้วยชุดบิตที่ จำกัด

chmod 1777 /tmp

เหนียวเล็กน้อยเพิ่มข้อ จำกัด บางประการให้ผู้ใช้รายอื่นโต้ตอบกับไฟล์ที่ไม่ได้สร้างหรือเป็นของพวกเขาดังนั้นจึงไม่มีเหตุผลที่จะต้องกังวล

หากคุณต้องการคุณสามารถสร้างไดเรกทอรีแยกเป็นเจ้าของและเขียนได้โดยผู้ใช้ mysql และระบุไดเรกทอรีนั้นใน my.cnf ที่จะใช้แทนระบบ wide / tmp


ขอบคุณมากสำหรับสิ่งนี้: "chmod 1777 / tmp" บิตที่เหนียว 1 คือสิ่งที่ฉันไม่รู้และมันฆ่าฉันเพราะฉันเสียเวลามากมายในการทำเช่นนี้โดยไม่รู้ว่าทำไม ตอนนี้ฉันขอขอบคุณสำหรับการโพสต์ "chmod 1777 / tmp" นี้

3

ปกติไดเรกทอรี / tmp สามารถเขียนได้สำหรับทุกคน คุณไม่ควรกังวลเกี่ยวกับเรื่องนี้ เหนียวเพิ่มเติมมีการตั้งค่าเพื่อให้รูทเท่านั้นและเจ้าของไฟล์สามารถลบไฟล์นั้นได้

chmod 777 / tmp
chmod o + t / tmp

ขอให้มีความสุขมาก ๆ ในวันนี้นะ


ไม่มีใครรู้ว่าหมายเลขแปดสำหรับบิตเหนียว?
ด้วง

ใช่มันเป็น 1 ในแปดแรก
รอย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.