Help us understand the problem. What is going on with this article?

MySQL で特定のユーザのプロセスを一括で削除する

More than 1 year has passed since last update.

結論から

mysql -h {DB_ENDPOINT} {DB_NAME} -u {USER_NAME} -p -N -e "SELECT GROUP_CONCAT(ID) FROM information_schema.PROCESSLIST WHERE \`USER\` = '{USER_NAME}';"| awk '{print $1}' | xargs -I{} mysqladmin kill {} -h {DB_ENDPOINT} {DB_NAME} -u {USER_NAME} -p

MySQL

-N のオプションをつけることで、ヘッダー出力をさせないようにすることができます。

-e のオプションで任意のSQLを実行。

SELECT GROUP_CONCAT(ID) FROM information_schema.PROCESSLIST WHERE \USER\= '{USER_NAME}';
特定ユーザの実行プロセスを取得してカンマ区切り(,)で表示

awk

awk '{print $1}' 取得結果が | 1,2,3,4 | のようになるので真ん中だけ取得するために実行

xargs

-I のオプションで引数として渡す位置を指定できるパラメータを指定。今回は {}

mysqladmin

mysql のコマンドではプロセスキルの kill を複数IDに対して実行できなかったが、mysqladminなら実行できたので使用。

willgate
ウィルゲートが理想とする社会は、一人ひとりが自身の『will(意志、想い、やりたいこと)』を実現できる社会です。
https://willgate.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away