MySQL "No space left on device": Disk Full Root Cause Analysis
Distinction between ERROR 28 and ERROR 1114, binlog and undo bloat, inode exhaustion, and non-destructive disk reclamation.
The error string is a symptom, not the root cause. Do not restart the server blindly. Run the diagnostic queries below to pinpoint the actual failure mode.
▸Symptoms
ERROR 1030 (HY000): Got error 28 from storage engine
ERROR 1114 (HY000): The table is full▸Triage & Resolution
- 1Check Disk Space and Inodes:
df -h && df -i- 1Purge Old Binary Logs:
PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 3 DAY);
SET PERSIST binlog_expire_logs_seconds = 604800;- 1Fix Tablespace Autoextend:
Ensure innodb_data_file_path specifies autoextend without reaching artificial maximum limits.
- 1Clean tmpdir:
Identify disk-heavy sorting operations and tune tmp_table_size / max_heap_table_size.
Other Database Error Triage Playbooks
Other battle-tested diagnostic guides for high-severity database errors.
MySQL ERROR 1045 Access denied: root Password Reset Guide
Four causes of MySQL 1045, meaning of using password: YES/NO, and safe credential recovery via --init-file.
MySQL Deadlock ERROR 1213: Graph Analysis and Permanent Prevention
Root causes of MySQL 1213 deadlock, parsing LATEST DETECTED DEADLOCK output, gap lock concurrency issues, and resilient application retry design.
MySQL Lock wait timeout exceeded: Finding Blocking Sessions
Finding the blocking transaction using performance_schema, safe KILL decision matrices, and permanent locking reduction.