• /
  • /

How to Check the Status of MySQL

JUNE 17, 2024 • WRITTEN BY ROMAN AGABEKOV
Whether you're a database admin or a developer, knowing how to check if your MySQL server is up and running can prevent downtime and keep your applications performing well. This guide will show you simple ways to check the status of your MySQL server, whether it's running or stopped, and how to fix common problems. We’ll also cover how to check the three types of MySQL query logs and why they’re important for monitoring your database's health and troubleshooting issues.
How to Check If MySQL Is Running
Different commands can be used to verify if your MySQL server is running based on your operating system. On Linux, you can check the MySQL service status by opening your terminal and typing:

systemctl status mysql

This command provides detailed information about the MySQL service, including its current status and recent log entries. Alternatively, for a simpler output you can use:

sudo service mysql status

For Windows users, you need to open Command Prompt as an administrator and use the net start command combined with a filter to list all running services and show only those related to MySQL. Run the following command:

net start | findstr "MySQL"

This method quickly informs you if the MySQL service is active on your Windows machine.
How to Troubleshoot the Problem if MySQL is Not Running
If MySQL isn't running, you can take several steps to troubleshoot and get it back up and running.
1. Check the Logs First (If Time Permits)
Before taking further action, if you have the time and capability, check the MySQL logs for potential issues. The logs can provide detailed error messages and insights that can help you diagnose the problem more accurately.
2. Restart the MySQL Service Immediately
If you're short on time or need to avoid downtime to limit the impact on users and are unable to access the logs right away, you can restart the MySQL service to try and bring it back online quickly. After the restart, you can review the logs to understand what caused the issue.
3. Verify the Configuration Files
Check that your MySQL configuration file (usually my.cnf or my.ini) is properly set up. Incorrect settings in these files can prevent the MySQL server from starting, so review and correct any potential issues, such as misconfigured paths or incorrect permissions.
4. Check Disk Space
Verify that your system has sufficient disk space available, as MySQL requires adequate space for data storage and operation. Low disk space can lead to the server stopping or failing to start, so free up space if necessary.
How to Check MySQL Server Logs
Logs are critical for diagnosing issues, monitoring performance, and understanding your MySQL server's behavior. If MySQL has stopped unexpectedly, reviewing the logs can provide valuable insights into the root cause. In this guide, we'll cover how to check the different types of MySQL logs:

  • Error Log
  • General Query Log
  • Slow Query Log
Checking the Error Log
The error log records critical information about server startup, shutdown, and any errors that occur. It's the first place to check if the server isn't starting or running correctly.

To view it on Linux use the command:

sudo cat /var/log/mysql/error.log

On Windows, look for the error log file in the MySQL data directory. This is typically located at:

C:\Program Files\MySQL\MySQL Server 8.0\data\
Checking the General Query Log
The general query log records all SQL queries received by the server, along with connection and disconnection events, helping you identify any problematic queries or unusual activity before the server stopped. This log provides a comprehensive chronological account of all SQL operations, making it an invaluable tool for troubleshooting.
How to Enable the General Query Log
The general query log is not enabled by default due to the large amount of data it can generate. You will need to enable it on your system with the following command:

SET GLOBAL general_log = 'ON';
Set the Log File Location
After enabling the General Query Log, it’s important to specify where the log file will be stored. This ensures you can easily locate and manage the log entries. On Linux, you can set the log file location by using the following command in your MySQL command-line client:

SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';

For Windows systems, you should set the log file location by entering:

SET GLOBAL general_log_file = 'C:/Program Files/MySQL/MySQL Server 8.0/data/mysql.log';
View the General Query Log
To view the General Query Log on Linux, you can use the cat command in your terminal, which displays the contents of the log file:

sudo cat /var/log/mysql/mysql.log

For Windows, you can simply open the log file using a text editor like Notepad.
Checking the Slow Query Log
The slow query log helps you identify and optimize slow-running queries, which can negatively impact database performance or even cause server shutdowns. By enabling this log, you can capture queries that exceed a specified execution time, allowing you to detect inefficiencies and bottlenecks in your database operations.
How to Enable the Slow Query Log
The Slow Query Log in MySQL isn't turned on by default. However, enabling it is important for spotting and fixing slow queries that could be dragging down your database's performance. To enable it, use the following command:

SET GLOBAL slow_query_log = 'ON';
Set the Log File Location
Now that the slow query log is enabled, you need to set the location for where the log file will be stored. For Linux use:

SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';

And for Windows:

SET GLOBAL slow_query_log_file = 'C:/Program Files/MySQL/MySQL Server 8.0/data/slow.log';
Set the Time Threshold
To define what qualifies as a "slow" query, you need to set a time threshold. This threshold determines the maximum duration a query can take before it is logged as slow.  A common practice is to start with a threshold of 2 seconds, as this provides a good balance between catching inefficient queries and not overwhelming your log with entries.

For example, if you want to log queries that take longer than 2 seconds to execute, you can set the time threshold with the following command:

SET GLOBAL long_query_time = 2;
View the Slow Query Log
To review slow queries and understand potential performance issues, you now need to view the Slow Query Log.

On Linux, use the cat command:

sudo cat /var/log/mysql/slow.log

For Windows, you can simply open the log file using a text editor like Notepad.
How to Start and Stop MySQL
There are various scenarios where you might need to start or stop MySQL, such as applying configuration changes, performing maintenance, or troubleshooting issues. You may need to quickly restart MySQL to recover from an unexpected shutdown and limit downtime. Alternatively, you might need to stop MySQL immediately if you notice unusual activity or concerning performance to prevent potential data loss or security issues.

On Linux or macOS, you can manage the MySQL service through the terminal. Enter the relevant command for your needs:

sudo systemctl start mysql
sudo systemctl stop mysql

For Windows users, you need to open Command Prompt as an administrator. Then enter the relevant command:

net start MySQL
net stop MySQL
What Are Status Variables?
MySQL Server Status Variables provide valuable insights into the health and performance of your MySQL server. They give you real-time statistics on server activities, allowing you to monitor operations without affecting the server’s performance.

For more detailed information on these variables, including crucial InnoDB data and buffer specifics, refer to the MySQL Server Status Variable Reference.
List Status Variables
To list all status variables, use:

SHOW GLOBAL STATUS;

For a more specific list, filter with LIKE:

SHOW GLOBAL STATUS LIKE 'Threads%';
Examples of Key Status Variables
Here are some key status variables to pay attention to:

  • Threads_connected – Indicates the number of currently open connections. A high value could suggest too many simultaneous connections, which might overwhelm the server.

  • Queries – Shows the total number of queries the server has handled. A sudden spike might indicate a potential issue.

  • Innodb_buffer_pool_reads – Reflects the number of logical reads that InnoDB could not satisfy from the buffer pool, requiring a disk read. High values might indicate insufficient buffer pool size.

  • Connections – Counts the total number of connection attempts (successful and unsuccessful) to the MySQL server. Frequent unsuccessful attempts might suggest authentication issues or potential security threats.

  • Uptime – Displays the number of seconds the server has been up. Frequent restarts might indicate underlying issues that need investigation.
Resetting Status Variables
To clear accumulated status variable data and get fresh metrics, use:

FLUSH STATUS;

This command resets most status variables to zero, giving you a clean slate for performance monitoring and troubleshooting. It's useful when you want to focus on the server's behavior from a specific point in time.
WRITTEN BY ROMAN AGABEKOV
Ready to dive in?
Try Releem today for FREE! No credit card required.