Übersicht
Wenn Sie eine lange laufende Abfrage haben, die falsch ist oder zu lange dauert, können Sie die einzelne Abfrage stoppen, ohne andere Datenbanken zu beeinträchtigen.
Beenden Sie MySQL nicht direkt mit dem MySQL-Prozess. Dies führt höchstwahrscheinlich zu einer Datenbeschädigung.
Anleitung
- Melden Sie sich als Root-Benutzer bei Ihrer MySQL-Shell an:
mysql -uroot -p<MYSQLPASSWORD>
Verwenden Sie für Plesk-Benutzer Folgendes:
mysql -u admin -p`cat /etc/psa/.psa.shadow`
- Zeigen Sie eine Liste von Prozessen mit „SHOW PROCESSLIST;“ Befehl. Sie sollten etwa Folgendes sehen:
mysql> show processlist; +----+-------+-----------+------+---------+------+----------+--------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------+-----------+------+---------+------+----------+--------------------+ | 11 | web01 | localhost | NULL | Query | 1231 | updating | DELETE FROM logs.. | | 15 | web02 | localhost | NULL | Sleep | 10 | NULL | NULL | | 41 | root | localhost | NULL | Query | 0 | NULL | show processlist | +----+-------+-----------+------+---------+------+----------+--------------------+ 3 rows in set (0.00 sec)
- Suchen Sie den Prozess, den Sie beenden möchten. In diesem Fall beenden wir die DELETE-Abfrage mit der ID 11 mit dem KILL-Befehl:
KILL 11; Query OK, 0 rows affected (0.00 sec)
- Sie können „SHOW PROCESSLIST;“ ausführen. erneut, um zu bestätigen, dass der Vorgang gestoppt wurde.