14 Feb 2015

RDS の mysql でスレッド・クエリを kill する

kill ではなく、RDS 固有のコマンド mysql.rds_kill を使わないといけない。マネージドのサービスなので、すべての権限を渡していませんということらしい。

mysql> SELECT * FROM information_schema.PROCESSLIST;
...
mysql> CALL mysql.rds_kill(thread-ID)
mysql> CALL mysql.rds_kill_query(thread-ID)

その他にも、レプリケーションのエラーをスキップする CALL mysql.rds_skip_repl_error; など、いくつかのコマンドは独自コマンドを使う必要がある。

付録: MySQL に関連する一般的な DBA タスク - Amazon Relational Database Service

ちなみにプロセスリストを見ると rdsadmin というユーザーがいる。すべての権限を持った自動で作られるユーザーで、こいつがバックアップをとったりしてくれているらしい。

mysql> select * from information_schema.PROCESSLIST WHERE USER = 'rdsadmin';
+----+----------+-----------------+-------+---------+------+-------+------+
| ID | USER     | HOST            | DB    | COMMAND | TIME | STATE | INFO |
+----+----------+-----------------+-------+---------+------+-------+------+
|  8 | rdsadmin | localhost:27138 | mysql | Sleep   |    9 |       | NULL |
+----+----------+-----------------+-------+---------+------+-------+------+
1 row in set (0.02 sec)
mysql> SELECT * FROM mysql.user\G
*************************** 1. row ***************************
                  Host: localhost
                  User: rdsadmin
              Password: *901DE9BC618FBCE207050F268074B590BEDEC78A
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: Y
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type:
            ssl_cipher:
           x509_issuer:
          x509_subject:
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin:
 authentication_string:
      password_expired: N

参考