140 Stimmen

Wie kann ich alle Prozesse in Mysql "show processlist" beenden?

Denn ich sehe dort eine Menge Prozesse, und die Spalte "Zeit" zeigt für alle große Werte an.

0voto

Nico Prat Punkte 608

Manchmal habe ich einige Zombies-Mysql-Prozesse, die nicht beendet werden können (mit MAMP Pro).

Zuerst erhalten Sie eine Liste aller mysql-Prozesse:

ps -ax | grep mysql

Als Nächstes töten Sie alle mit (ersetzen Sie processId durch die erste Spalte im Ergebnis des vorherigen Befehls):

kill -9 processId

0voto

#! /bin/bash
if [ $# != "1" ];then
    echo "Not enough arguments.";
    echo "Usage: killQueryByDB.sh <db_name>";
    exit;
fi;

DB=${1};
for i in `mysql -u <user> -h localhost ${DB} -p<password> -e "show processlist" | sed 's/\(^[0-9]*\).*/\1/'`; do
    echo "Killing query ${i}";
    mysql -u <user> -h localhost ${DB} -p<password> -e "kill query ${i}";
done;

0voto

shashi009 Punkte 691

Ein einfacher Weg wäre, den mysql-Server neu zu starten. Öffnen Sie "services.msc" in Windows Ausführen, wählen Sie Mysql aus der Liste. Klicken Sie mit der rechten Maustaste und stoppen Sie den Dienst. Starten Sie dann erneut, und alle Prozesse außer dem einen (die standardmäßig reservierte Verbindung) wurden beendet.

-5voto

Saurav Sood Punkte 95

Abfrage 1 select concat('KILL ',id,';') from information_schema.processlist where user='username' into outfile '/tmp/a.txt';

Abfrage 2 Quelle a.txt

Auf diese Weise können Sie alle Abfragen in der Prozessliste anzeigen für einen bestimmten Benutzer löschen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X