Denn ich sehe dort eine Menge Prozesse, und die Spalte "Zeit" zeigt für alle große Werte an.
Antworten
Zu viele Anzeigen?
BohanZhang
Punkte
163
Für die Sprache Python, können Sie wie folgt vorgehen
import pymysql
connection = pymysql.connect(host='localhost',
user='root',
db='mysql',
cursorclass=pymysql.cursors.DictCursor)
with connection.cursor() as cursor:
cursor.execute('SHOW PROCESSLIST')
for item in cursor.fetchall():
if item.get('Time') > 200:
_id = item.get('Id')
print('kill %s' % item)
cursor.execute('kill %s', _id)
connection.close()
Timon de Groot
Punkte
5947
Ziaur Rahman
Punkte
958
Wenn Sie Laravel verwenden, dann ist dies für Sie:
$query = "SHOW FULL PROCESSLIST";
$results = DB::select(DB::raw($query));
foreach($results as $result){
if($result->Command == "Sleep"){
$sql="KILL ". $result->Id;
DB::select(DB::raw($sql));
}
}
Natürlich sollten Sie das verwenden use Illuminate\Support\Facades\DB;
nach Ihrem Namespace.
Adam Bodrogi
Punkte
81
Kill funktioniert nicht, wenn der laufende Prozess nicht der Ihre ist. Ich habe einige dieser Lösungen zusammengeführt und sie erweitert, um eine (zumindest für mich) einfachere Lösung zu finden.
m=mysql -p $password -h $host -u$user #you can also inline it of course
for i in `$m -e "show processlist" | awk '/$anySearchString/ {print $1}'`; do $m -e "call mysql.rds_kill($i);"; done
Meltzer
Punkte
117