×


MySQL crash – Causes Recovery and Prevention methods

Are you facing MySQL crash?

This guide is for you.


Low disk space could be a reason for MySQL table being marked as "crashed". When you have low space on your disk, some of the tables in the database may get crashed. 

It usually happens when you get space issues on the part of the hard disk where your database is stored.

Although easy to use and supports in all operating systems, MySQL crashes are common in many websites due to resource limits, database errors, and so on.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform MySQL related queries.

In this context, we shall look into more about MySQL crash.


What triggers a MySQL crash?

Before proceeding on how to fix MySQL high memory usage errors, let's take a look at the causes:

1. Resource limits

2. MyISAM corruption

3. Large log size

4. InnoDB corruption

5. File system errors


How to recover from a database crash?

Depending on what cause the memory bottleneck, the solution vary. 

However, our Support Experts explains top resolutions for MySQL high memory usage.


1. Recover crashed InnoDB database

Removing redo logs should only be considered after a clean shutdown, with innodb_fast_shutdown set to 0 or 1. 

To avoid resource contention, even if it is enabled, the value is set to a minimal one of around 10MB.


2. Upgrade server resources and optimize the allocation

When a website is under attack, an abnormally high number of connections establish in a short time. 

We use the “PROCESSLIST” in MySQL to identify the top users and block access to the abusive connections.


3. Scan and fix file system errors

Queries that take a long time to execute are identified from the slow-query log. 

Slow queries would cause more disk reads which require more memory and CPU usage, which in turn affects the server performance.


4. Limit log size

If the server constantly resorts to using swap memory, even after optimizing the database settings, we should increase the server RAM.


5. Recover MyISAM tables of MySQL default database

We can fix the table using mysqlchk utility.


How to prevent MySQL crash ?

1. Optimize tables regularly using mysqlcheck -r

2. Monitor resource usage and optimize the allocation. For instance, buffer size, cache size, and so on.

3. Use a database cluster such as Percona XtraDB Cluster so that the service won’t become unavailable

4. Use fault resilient disks such as RAID so that we’ll have ample warning to replace disks.


[Need urgent assistance in fixing MySQL crash? Feel free to contact us. ]


Conclusion

This article covers methods to fix and prevent MySQL downtime. Basically, many issues such as resource limits, #database table errors, file system errors, and so on, can lead to a MySQL crash.


To fix MySQL errors in cPanel?

You can also restart the MySQL service from WHM.

1. Login to WHM.

2. Navigate to Restart Services.

3. Now you can restart the MySQL service by clicking the icon “SQL Server(MySQL)”.


To use mysqlcheck, follow these steps:

1. As the root user, type the following command: cd /var/lib/mysql.

2. Replace the database with the name of the database that you want to check.

3. Mysqlcheck checks the specified database and tables.


How do I know if MySQL is running?

We check the status with the service mysql status command. We use the mysqladmin tool to check if MySQL server is running. 

The -u option specifies the user which pings the server. 

The -p option is a password for the user.


What does repair table do MySQL?

REPAIR TABLE repairs a possibly corrupted table, for certain storage engines only. 

This statement requires SELECT and INSERT privileges for the table. Although normally you should never have to run REPAIR TABLE , if disaster strikes, this statement is very likely to get back all your data from a MyISAM table.


What causes MySQL #tables to crash?

The major cause of the database corruption is the lack of free disk space on the server.

Other possible causes of MySQL table crashes include operating system problems, power failures, hardware issues, unexpected MySQL server termination, data corruption due to external programs, and so on.


To access your #MySQL database in Linux, please follow these steps:

1. Log into your Linux web server via Secure Shell.

2. Open the MySQL client program on the server in the /usr/bin directory.

3. Type in the following syntax to access your database: $ mysql -h {hostname} -u username -p {databasename} Password: {your password}