すべてのプロダクト
Search
ドキュメントセンター

Managed Service for Prometheus:Managed Service for Prometheus 用の MySQL ユーザーの作成

最終更新日:Dec 27, 2024

Managed Service for Prometheus に MySQL データベースからモニタリングデータを収集するには、MySQL ユーザーを作成し、そのユーザーに最小限の権限を付与する必要があります。このトピックでは、ID mysqld_exporter のユーザーを作成します。

使用上の注意

  • $mysql> はプロンプト文字です。コマンドを入力する際は、プロンプト文字を入力しないでください。

  • #-- は注釈のプレフィックスです。コマンドを入力する際は、注釈やプレフィックスを入力しないでください。

手順

説明

MySQL データベース 8.0 以降では、GRANT ステートメントを使用して新しいユーザーを作成することはサポートされていません。ユーザーは個別に作成し、権限を付与する必要があります。このトピックでは、手順 2 でユーザーの作成方法、手順 3 でユーザーへの権限の付与方法について説明します。

8.0 より前の MySQL データベースを使用している場合は、root ユーザーまたは管理者としてログオンした後、ユーザーを作成して権限を付与できます。詳細については、手順 3: ユーザーに権限を付与する を参照してください。

手順 1: root ユーザーまたは管理者としてログオンする

MySQL データベースを起動し、ログオンします。root ユーザーを使用した場合を例に説明します。

$ mysql -u root -p

# 「password」を root ユーザーのパスワードに置き換えます。
Enter password: password

手順 2: ユーザーを作成する

  1. コマンドラインで次のコマンドを実行し、mysqld_exporter という名前のユーザーを作成します。

    mysql> CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'password';
    • localhost: 接続可能なホストの IP アドレス。実際の IP アドレスに置き換えてください。

    • mysqld_exporterpassword をカスタムのユーザー名とパスワードに置き換えてください。

  2. 検証 (オプション)

    コマンドラインで次のコマンドを実行します。ユーザーとホストの情報がクエリされた場合、mysqld_exporter が作成されています。

    -- mysql.user テーブルからユーザー情報をクエリします。
    mysql> SELECT User,Host FROM mysql.user WHERE User = 'mysqld_exporter';
    
    -- 結果
    +-----------------+-----------+
    | User            | Host      |
    +-----------------+-----------+
    | mysqld_exporter | localhost |
    +-----------------+-----------+

手順 3: ユーザーに権限を付与する

  1. コマンドラインで次のコマンドを実行し、mysqld_exporter に最小限の権限を付与します。

    -- ユーザーにすべてのテーブルへのアクセス権限、およびプロセス情報とマスターデータベースとスレーブデータベースの状態を確認する権限を付与します。
    -- GRANT ステートメントを使用して新しいユーザーを作成する場合、次のコマンドの末尾に [IDENTIFIED BY 'password'] を追加してパスワードを設定することをお勧めします。
    mysql> GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost';
    
    -- performance_schema.* テーブルに対する読み取り権限を追加します。
    mysql> GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost';
    
    -- 権限付与テーブルをリロードして、権限付与を有効にします。
    mysql> FLUSH PRIVILEGES;
    • REPLICATION CLIENT: マスターデータベースとスレーブデータベースの状態を確認する権限をユーザーに付与するステートメント。

    • PROCESS: プロセス情報を確認する権限をユーザーに付与するステートメント。

  2. 検証 (オプション)

    コマンドラインで次のコマンドを実行し、ユーザーに必要な権限が付与されているかどうかを確認します。

    -- ユーザーの権限を表示します。
    mysql> SHOW GRANTS FOR 'mysqld_exporter'@'localhost';
    
    -- 結果
    +---------------------------------------------------------------------------+
    | Grants for mysqld_exporter@localhost                                      |
    +---------------------------------------------------------------------------+
    | GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost' |
    | GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost'     |
    +---------------------------------------------------------------------------+

FAQ

  • Operation CREATE USER failed for 'usernam'@'hostname'

    このエラーは、同じ名前のユーザーが既に存在するため、ユーザーの作成に失敗したことを示しています。この問題を解決するには、既存のユーザーを削除してから新しいユーザーを作成します。ユーザーを削除するには、次のコマンドを実行します。

    mysql> DROP USER 'username'@'hostname';
  • Access denied for user 'username'@'hostname'(using password: YES/NO)

    このエラーは、ユーザー名またはパスワードが無効なため、MySQL サーバーが接続要求を拒否したことを示しています。この問題を解決するには、ユーザー名とパスワードを確認し、ユーザーに必要な権限が付与されているかどうかを確認します。

  • Can't find any matching row in the user table

    このエラーは、ユーザー名またはホスト名が権限付与テーブルに存在しないことを示しています。この問題を解決するには、スペルミスを確認し、ホスト名が有効であることを確認します。スペルが正しい場合は、FLUSH PRIVILEGES コマンドを使用して権限付与テーブルを更新します。

参考資料

Managed Service for Prometheus を使用して MySQL モニタリングデータを収集する方法については、Managed Service for Prometheus を使用して MySQL データベースを監視する を参照してください。