Yakstは、海外の役立つブログ記事などを人力で翻訳して公開するプロジェクトです。
約2年前投稿 修正あり

MySQLのPerformance Schemaでsetup_actorsに除外条件を設定する

5.7.6-m16にてperformance_schema.setup_actorsに加えられたenabledカラムの話
原文 MySQL Performance Schema: Instrumentation Exceptions | MySQL Server Blog (English)
翻訳者 0deae06ab5d86b39feeec2e23a30b88a yoku0825


免責事項 * この翻訳は MySQL Server Blogの記事をユーザーが翻訳したものであり、Oracle公式の翻訳ではありません。

  • Performance Schemasetup_actors はどのユーザーやどのホストからの接続のinstrumentation(訳注: Performance Schemaで統計情報を取得中のスレッドのステータス)を有効化するのかを指定するのに使う。デフォルトでは全てのホストからの全ての接続でinstrumentationが有効化される。

    mysql> select * from performanceschema.setupactors;
    +------+------+------+
    | HOST | USER | ROLE |
    +------+------+------+
    | %    | %    | %    |
    +------+------+------+
    1 row in set (0.00 sec)
    

  • setup_actors テーブルで特定のユーザーや特定のホストだけinstrumentationを有効化するのにはごく普通のSQLが使える。

  • だが、'mayank'ユーザーを 除いた 全てのユーザーのinstrumentationを有効にするような場合はどうすればいいだろう?

  • MySQL 5.7.6 DMR では、新しく ENABLED カラムがsetup_actors テーブルに追加された。なので、今のデフォルトの設定状態はこんな感じだ。

    mysql> select * from performanceschema.setupactors;
    +------+------+------+---------+
    | HOST | USER | ROLE | ENABLED |
    +------+------+------+---------+
    | %    | %    | %    | YES     |
    +------+------+------+---------+
    1 row in set (0.00 sec)
    

  • この新しいカラムのおかげで、'mayank'以外の全てのユーザーのinstrumentationを有効にする、というのはとても簡単に指定できる。

    mysql> insert into performanceschema.setupactors values ('%','mayank','%','NO');
    Query OK, 1 row affected (0.00 sec)
     
    mysql> select * from performanceschema.setupactors;
    +------+--------+------+---------+
    | HOST | USER   | ROLE | ENABLED |
    +------+--------+------+---------+
    | %    | %      | %    | YES     |
    | %    | mayank | %    | NO      |
    +------+--------+------+---------+
    2 rows in set (0.00 sec)
    

  • 同じことはホストに対しても指定できる。たとえば、'localhost'以外の全てのホストからの接続のinstrumentationを有効にしたいのならば、

    mysql> insert into performanceschema.setupactors values ('localhost','%','%','NO');
    Query OK, 1 row affected (0.00 sec)
     
    mysql> select * from performanceschema.setupactors;
    +-----------+--------+------+---------+
    | HOST      | USER   | ROLE | ENABLED |
    +-----------+--------+------+---------+
    | %         | %      | %    | YES     |
    | %         | mayank | %    | NO      |
    | localhost | %      | %    | NO      |
    +-----------+--------+------+---------+
    3 rows in set (0.00 sec)
    

  • この設定を済ませると、'mayank'ユーザー(どのホストから接続しても含まれる)と'localhost'からの接続ユーザーを 除いた 全てのユーザーとホストからの接続に対してinstrumentationが有効になる。

  • この新しい機能が便利だと思ってくれれば嬉しい。もし何か質問があれば、この記事(訳注: オリジナルの記事 のこと)に気軽にコメントしてもらうか、サポートチケットを切ってほしい。何かバグを踏んだら、この記事にコメントしてもらうか、バグレポート か、サポートチケットを切ってほしい。

  • 毎度のことながら、MySQLを使ってくれてありがとう!

次の記事
mysqldiffでテーブル定義の違いをチェックする
前の記事
bashで素晴らしく生産性を上げるための10のテクニック

Feed small 記事フィード