Mysql/MariaDB commando’s actief

  Mysql / MariaDB

als je binnen de command line van mysql/mariadb een query/command start en deze loopt erg lang of je krijgt geen output kan het zijn dat jouw coommando ergens op staat te wachten. je kan dan eenvoudig de actieve processen opvragen.  “SHOW FULL PROCESSLIST;”

In mijn geval geval had ik een optimize table gestart. dit proces neemt normaal als veel tijd in beslag. maar ik kreeg een behoorlijke tijd geen output en ik zag ook geen activiteit op disk.

log in als admin user op de database en voer het volgende commando uit.

MariaDB [(none)]> SHOW FULL PROCESSLIST;
 +-----+--------+-------------------------------+----------------+---------+------+----------+-----------------------------------------------------------------------------+----------+
 | Id  | User   | Host                          | db             | Command | Time | State    | Info                                                                        | Progress |
 +-----+--------+-------------------------------+----------------+---------+------+----------+-----------------------------------------------------------------------------+----------+
 |  59 | zabbix | localhost                     | zabbix         | Sleep   |  145 |                              | NULL                                                                        |    0.000 |
 |  60 | zabbix | localhost                     | zabbix         | Sleep   |   29 |                              | NULL                                                                        |    0.000 |
 | 115 | root   | localhost                     | hassio_history | Query   | 2564 | Waiting for table level lock | OPTIMIZE TABLE states                                                       |    0.000 |
 | 116 | hassio | waverider.starfleet.edd:46064 | hassio_history | Sleep   | 2709 |                              | NULL                                                                        |    0.000 |
 | 117 | hassio | waverider.starfleet.edd:46308 | hassio_history | Sleep   | 2709 |                              | NULL                                                                        |    0.000 |
 | 118 | hassio | waverider.starfleet.edd:46310 | hassio_history | Query   | 2708 | updating                     | DELETE FROM states WHERE states.last_updated < '2020-02-09 08:45:20.009094' |    0.000 |
 | 120 | root   | localhost                     | NULL           | Query   |    0 | init                         | SHOW FULL PROCESSLIST                                                       |    0.000 |
 +-----+--------+-------------------------------+----------------+---------+------+------------------------------+-----------------------------------------------------------------------------+----------+
 8 rows in set (0.00 sec)

zoals je kan zien proces lijst staat mijn optimize command te wachten op een table lock hij kan deze niet krijgen omdat  er al een delete query actief is op de table die we proberen te optimizen. je kan aan de lijst ook zien waar de query vandaan komt. in mijn voorbeeld is dit ook correct dus zal ik moeten wachten tot de delete query klaar is.