MySQL database may have single or more processes in order to run database-related transactions. Over time these processes may be unnecessary or stuck and consume lots of system resources like memory, and CPU. The MySQL processes can be killed in different ways. But keep in mind that killing MySQL processes may create unexpected results like data loss, and database incompatibility. But in most cases, it can be assumed as safe.
List MySQL Processes
The MySQL interactive terminal provides the SHOW PROCESSLIST
command which displays the processes lists via the MySQL terminal. First, we enter the command-line interface with the mysql
command like below.
$ mysql -u root -p
Now we will run the “SHOW PROCESSLIST;” like below.
SHOW PROCESSLIST;
Kill MySQL Process
After listing the processes the MySQL interactive shell can be used to kill the process. The KILL
command is used to kill the process. The Process ID should be provided as a parameter to the KILL command. In the following example we kill the process ID 27.
KILL 27;
List Process with ps Command
The ps aux
command can be used to list all running mysql processes. The grep
command is used to filter only mysql processes.
$ ps aux | grep mysql
Kill Process with kill Command
After listing the mysql processes the kill
command can be used to kill MySQL process with its process ID. In the following example, we provide 2345 as MySQL process ID.
$ kill 2345
Generally, the mysql is executed with root privileges and this requires providing root privileges to kill the MySQL process.
$ sudo kill 2345
Kill All MySQL Processes
Just using the killall
command all MySQL processes can be killed easily. All processes those names contain the term “mysql” will be killed.
$ killall mysql
Following commands can be used to kill MySQL processes with the names of mysqld
and mysqld_safe
.
$ killall mysqld
$ killall mysqld_safe