1030 มีข้อผิดพลาด 28 จากเอนจิ้นการจัดเก็บ


205

ฉันกำลังทำงานในโครงการที่ฉันต้องการสร้างฐานข้อมูลที่มี 300 ตารางสำหรับผู้ใช้แต่ละคนที่ต้องการดูแอปพลิเคชันสาธิต มันทำงานได้ดี แต่วันนี้เมื่อฉันทดสอบกับผู้ใช้ใหม่เพื่อดูการสาธิตมันแสดงข้อความข้อผิดพลาดนี้ให้ฉัน

1030 Got error 28 from storage engine

หลังจากใช้เวลา googling ฉันพบว่ามันเป็นข้อผิดพลาดที่เกี่ยวข้องกับพื้นที่ของฐานข้อมูลหรือไฟล์ชั่วคราว ฉันพยายามแก้ไข แต่ฉันล้มเหลว ตอนนี้ฉันยังไม่สามารถเริ่ม mysql ได้ ฉันจะแก้ไขสิ่งนี้ได้อย่างไรและฉันต้องการเพิ่มขนาดให้ใหญ่ที่สุดเพื่อที่ฉันจะได้ไม่ต้องเจอปัญหาเดิมซ้ำแล้วซ้ำอีก


1
ระบุชัดเจน ... คุณมีพื้นที่ว่างเพียงพอในพาร์ติชันที่เก็บข้อมูล mysql หรือไม่ คุณใช้แพลตฟอร์มอะไร Localhost หรือ บริษัท โฮสติ้ง
DCoder

@DCoder: - ฉันมีเซิร์ฟเวอร์บน Amazon cloud
ScoRpion

1
@Showket สิ่งที่ฉันมีปัญหาเดียวกัน/tmpคือโฟลเดอร์ของฉันมีการใช้พื้นที่ 100% ไม่เป็นไรที่จะลบไฟล์ทั้งหมดจากโฟลเดอร์ / tmp นี้? และคำถามอื่นทำไมมันไม่ลบโดยอัตโนมัติ
Dima Deplov

คำตอบ:


412

ข้อผิดพลาด Mysql " 28 จากเครื่องมือจัดเก็บข้อมูล " - หมายถึง " เนื้อที่ว่างบนดิสก์ไม่เพียงพอ "

เพื่อแสดงพื้นที่ดิสก์ให้ใช้คำสั่งด้านล่าง

myServer# df -h

ผลลัพธ์จะต้องเป็นเช่นนี้

Filesystem    Size    Used   Avail Capacity  Mounted on
/dev/vdisk     13G     13G     46M   100%    /
devfs         1.0k    1.0k      0B   100%    /dev

6
สำหรับข้อมูลเพิ่มเติมคุณจะได้รับข้อผิดพลาดเดียวกันหากระบบไฟล์ / tmp มีการใช้งานถึง 100%
Kumar

1
แม้ว่าคุณจะมี Mysql data_dir ในพาร์ติชั่นต่าง ๆ (หรือดิสก์) ที่มีพื้นที่ว่างคุณต้องมีพื้นที่ว่างบน / และ / tmp (แน่นอนว่าคุณสามารถมีพาร์ติชัน / ดิสก์สุดท้ายได้)
Diego AndrésDíaz Espinoza

1
คุณบันทึกวันของฉันฉันพบไฟล์บันทึกการทำงานช้า 390 Gb ((
mulya

1
คำตอบที่ดี มันช่วยฉันประหยัดเวลาได้มาก +1
Pratik Soni

34

หากต้องการขยายในเรื่องนี้ (แม้ว่าจะเป็นคำถามที่เก่ากว่า); มันไม่ได้เกี่ยวกับพื้นที่ MySQL เอง แต่น่าจะเกี่ยวกับพื้นที่โดยทั่วไปสมมติว่าไฟล์ tmp หรืออะไรทำนองนั้น ข้อมูล mysql ของฉันไม่เต็มพาร์ติชัน / (root) คือ


10

ฉันมีปัญหาเดียวกันใน AWS RDS มันเป็นเพราะพื้นที่ว่าง (ฮาร์ดไดรฟ์พื้นที่เก็บข้อมูล) เต็ม คุณต้องเพิ่มพื้นที่ของคุณหรือลบข้อมูลบางส่วนออก


8

/ tmp ของฉันคือ% 100 หลังจากลบไฟล์ทั้งหมดและเริ่ม mysql ทุกอย่างทำงานได้ดี


2

โฟลเดอร์ / var / log / apache2 ของฉันคือ 35 กรัมและบางบันทึกใน / var / log นั้นรวมเป็น 5 กรัมอีกหนึ่งฮาร์ดไดรฟ์ 40 กรัมของฉัน ฉันลบไฟล์บันทึก * .gz ทั้งหมดและหลังจากตรวจสอบให้แน่ใจว่าบันทึกอื่น ๆ ไม่ได้ทำสิ่งที่ไม่ดีถ้าฉันทำยุ่งกับพวกเขาฉันก็ล้างมันด้วย

echo "clear" > access.log

เป็นต้น


3
นั่นเป็นวิธีที่แปลกมากในการล้างไฟล์บันทึกใช่ไหม ทำไมไม่ทำอย่างนั้นล่ะ?
user1175849

3
บางทีคุณสามารถเก็บไฟล์และการอนุญาตได้หรือไม่?
Zachary Dahan

9
ฉันแนะนำให้ใช้truncateเพื่อล้างบันทึกtruncate -s 0 access.log


1

ฉันมีปัญหาที่คล้ายกันเนื่องจากการจำลองแบบของฉันบันทึกไบนารี

หากเป็นกรณีนี้เพียงแค่สร้าง cronjob เพื่อเรียกใช้แบบสอบถามนี้ทุกวัน:

PURGE BINARY LOGS BEFORE DATE_SUB( NOW(), INTERVAL 2 DAY );

สิ่งนี้จะลบบันทึกไบนารีทั้งหมดที่เก่ากว่า 2 วัน

ผมพบว่าการแก้ปัญหานี้ที่นี่


0

ง่าย ๆ : $ sth-> finish (); อาจช่วยให้คุณไม่ต้องกังวลกับเรื่องนี้ Mysql ใช้พื้นที่ tmp ของระบบแทนที่จะเป็นพื้นที่ของตัวเอง



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