সমস্ত প্রশ্নের মেরে ফেলুন - মাইএসকিউএল


17

কখনও কখনও একটি এসএনএএফইউ চলাকালীন আমাকে চালাতে হয় kill query xxxxxxx বিশ বা । kill allআমি কোন ধরণের কমান্ড মিস করছি?

আমি কীভাবে টাইপ করতে পছন্দ করি না তার কারণে।


সার্ভার পুনরায় চালু করবেন?
ডেরেক ডউনি

@ ডিস্টেস্ট - এটি কি কোনও ক্যোয়ারী দিয়ে করা যায়? আমার সরাসরি সার্ভার অ্যাক্সেস নেই।
JIStone

এটি এমন একটি প্রশ্ন যা অন্যান্য বিকাশকারী এবং ডিবিএ (+1) এর কাজে আসতে পারে !!!
রোল্যান্ডোমাইএসকিউএলডিবিএ

উত্তর:


15

লিনাক্স কমান্ড লাইন থেকে

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 ক্ষেত্র, বা একটি নির্দিষ্ট ডাটাবেসের বিরুদ্ধে ডিবি ক্ষেত্র।


5
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/


আমি আসলে এই পদ্ধতির পছন্দ করি কারণ এটি লিনাক্স বা উইন্ডোজ নির্বিশেষে মাইএসকিএল ক্লায়েন্টের সীমানায় করা যায়। +1 !!!
রোল্যান্ডোমাইএসকিউএলডিবিএ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.