কখনও কখনও একটি এসএনএএফইউ চলাকালীন আমাকে চালাতে হয় kill query xxxxxxx
বিশ বা । kill all
আমি কোন ধরণের কমান্ড মিস করছি?
আমি কীভাবে টাইপ করতে পছন্দ করি না তার কারণে।
কখনও কখনও একটি এসএনএএফইউ চলাকালীন আমাকে চালাতে হয় kill query xxxxxxx
বিশ বা । kill all
আমি কোন ধরণের কমান্ড মিস করছি?
আমি কীভাবে টাইপ করতে পছন্দ করি না তার কারণে।
উত্তর:
লিনাক্স কমান্ড লাইন থেকে
for PROC_TO_KILL in `mysql -h... -u... -p... -A --skip-column-names -e"SHOW PROCESSLIST" | grep -v "system user" | awk '{print $1}'` ; do mysql -h... -u... -p... -A --skip-column-names -e"KILL QUERY ${PROC_TO_KILL}" ; done
আপনি কোয়েরিতে একটি নির্দিষ্ট ব্যবহারকারী বা নির্দিষ্ট স্ট্রিং সনাক্ত করতে ফর লুপের শিরোনামে গ্রেপ বিকল্পটি পরিবর্তন করতে পারেন।
আপনার যদি মাইএসকিউএল 5.1 থাকে যেখানে প্রক্রিয়া তালিকাটি INFORMATION_SCHEMA তে রয়েছে, আপনি মাইএসকিএল ক্লায়েন্টের মধ্য থেকে বাল্ক কিল কমান্ড জেনারেট করতে এটি করতে পারেন:
SELECT GROUP_CONCAT(CONCAT('KILL QUERY ',id,';') SEPARATOR ' ') KillQuery
FROM information_schema.processlist WHERE user<>'system user'\G
নির্দিষ্ট ক্যোয়ারী অনুসন্ধানের জন্য আপনি INFO ক্ষেত্রের বিপরীতে যেখানে বিধিগুলি করতে পারেন, দীর্ঘ চলমান প্রশ্নের বিরুদ্ধে TIME ক্ষেত্র, বা একটি নির্দিষ্ট ডাটাবেসের বিরুদ্ধে ডিবি ক্ষেত্র।
mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt';
Query OK, 2 rows affected (0.00 sec)
mysql> source /tmp/a.txt;
Query OK, 0 rows affected (0.00 sec)
http://www.mysqlperformanceblog.com/2009/05/21/mass-killing-of-mysql-connections/