MySQL error 1053, Server shutdown in progress, is usually literal: the server has begun its shutdown sequence and no longer accepts normal client work. The message can appear in an application, a backup job or an administrative command that connected while MySQL or MariaDB was stopping.
It does not, by itself, prove that a table is corrupt. Restarting the service repeatedly or killing mysqld immediately can turn a normal but slow shutdown into a longer crash recovery.
Use the sequence below to determine whether the database is stopping normally, stuck because of a resource problem, or caught in a crash-and-restart loop.
First, stop automated restart attempts
If a monitoring system, hosting panel or deployment job is repeatedly restarting the database, pause that action long enough to observe one clean state transition. Multiple administrators issuing start and stop commands at the same time make the logs difficult to interpret and can prolong recovery.
Record the service status. The unit is commonly mysqld, mysql or mariadb:
systemctl status mysqld --no-pager
pgrep -a mysqld
mysqladmin ping
Use the unit and client appropriate to the installed product. These checks distinguish three important states:
- The service is actively stopping and
mysqldstill exists. - The service has stopped and no database process remains.
- The process repeatedly exits and systemd or another supervisor starts it again.
Read the shutdown timeline in the logs
Capture the journal before restarting anything:
journalctl -u mysqld --since "-30 minutes" --no-pager
Then read the database error log. Common locations include /var/log/mysql/error.log, /var/log/mariadb/mariadb.log and the data directory. A standard cPanel server commonly writes to /var/lib/mysql/hostname.err.
Find the first shutdown or failure message and read forward. Useful distinctions include:
- A requested shutdown followed by buffer flushing and a clean exit
- An out-of-memory kill recorded by the kernel
No space left on deviceor an inode shortage- InnoDB crash recovery after an earlier unclean stop
- A system-table or upgrade failure during every start
- Permission, mount or storage I/O errors
The last line is often a consequence rather than the cause.
Check disk, memory and the kernel log
Database shutdown and startup both require working storage. Confirm free space and inodes:
df -h
df -i
free -m
Review recent kernel messages for out-of-memory events or storage errors:
journalctl -k --since "-30 minutes" --no-pager
If the kernel killed mysqld, restarting it without reducing memory pressure can create a loop. Check other large processes, container limits, MySQL memory settings and recent workload changes before the next start.
Allow a legitimate InnoDB shutdown to finish
During an orderly shutdown, MySQL stops accepting new connections, terminates current activity and asks each storage engine to close. InnoDB may need to flush dirty pages, write log state and finish internal work. On a large or I/O-constrained instance, that can take longer than expected.
Watch the error log and storage activity. If log timestamps continue to advance and the process is doing I/O, waiting is usually safer than sending SIGKILL.
MySQL documents that innodb_fast_shutdown=0 can take minutes or even hours in extreme cases because it performs a full purge and change-buffer merge. The normal value of 1 skips some of that work. Do not change this variable blindly during an incident; first establish why the current shutdown was initiated.
Read the MySQL server shutdown process for the current sequence.
If MySQL is fully stopped
Once no mysqld process remains, preserve the logs and start the service once:
systemctl start mysqld
For cPanel-managed systems, use its service wrapper so the platform records and handles the restart consistently:
/usr/local/cpanel/scripts/restartsrv_mysql
Follow the error log during startup. Do not keep issuing the start command if crash recovery is already running.
If the server starts and then immediately stops again, the new log sequence should reveal whether the trigger is an invalid configuration, failed upgrade, missing system table, full disk, permissions or corruption.
If the process will not finish stopping
Before escalating to a forced termination:
- Confirm that no backup, snapshot or storage operation is intentionally quiescing the server.
- Check whether I/O is still progressing.
- Record the process ID, elapsed time and current log tail.
- Confirm that the filesystem and storage device are responsive.
- Take a platform snapshot if that is safe and available.
A normal service stop sends a graceful termination request. kill -9 bypasses the database shutdown path and guarantees crash recovery at the next start. Use it only as a last-resort incident decision with a backup or snapshot and a clear recovery plan.
If the log reports InnoDB corruption
Do not run mysqlcheck --repair against InnoDB tables. That command does not repair InnoDB data pages. Do not delete redo logs or the system tablespace based on a generic forum answer.
Preserve an offline copy and use a controlled InnoDB recovery procedure. The aim is to restore from a verified backup or start in the lowest necessary recovery mode only long enough to export data.
If the error appeared after an upgrade
A service that fails during every post-upgrade start requires version-specific diagnosis. Confirm the installed product, binary version, configured data directory and supported upgrade path. If the log contains mysql.plugin doesn't exist, follow the system-table upgrade guide rather than creating tables manually.
Verify that recovery is complete
After MySQL remains online, verify more than the service status:
mysqladmin ping
mysqladmin status
Then confirm:
- Applications can authenticate and complete a read and write test.
- The error log contains no continuing crash-recovery or storage errors.
- Replication is healthy, if configured.
- Scheduled backups run and a recent backup can be restored in a test location.
- Monitoring observes both database availability and query responsiveness.
If shutdown errors are part of repeated resource exhaustion or database instability, ongoing Linux server management should address the cause instead of treating each restart as an isolated event.
Need an engineer to manage the Linux server behind this issue?
Our Linux administrators handle monitoring, updates, security, performance and day-to-day technical problems.



