Tous les produits
Search
Centre de documentation

Managed Service for Prometheus:Créer un compte d'accès MySQL pour Prometheus

Dernière mise à jour :Aug 27, 2026

Prometheus nécessite un compte MySQL dédié disposant d'autorisations en lecture seule minimales pour collecter les données de surveillance. Cette rubrique explique la procédure de configuration en prenant mysqld_exporter comme exemple.

Notes sur l'exemple

  • Les symboles $ et mysql> sont des invites de commande. Ne les saisissez pas lors de l'exécution des commandes.

  • Les symboles # et -- sont des préfixes de commentaire. Ne les saisissez pas, ni le texte des commentaires, lors de l'exécution des commandes.

Procédure

Remarque

MySQL 8.0 et les versions ultérieures n'autorisent pas l'utilisation de l'instruction GRANT pour créer de nouveaux utilisateurs. Vous devez créer l'utilisateur et lui accorder des autorisations dans des étapes distinctes. Par conséquent, cet exemple est divisé en deux étapes : création et autorisation.

Si vous utilisez une version de MySQL antérieure à 8,0, vous pouvez créer un compte et lui accorder des autorisations en une seule étape. Pour plus d'informations, consultez les opérations et les commentaires indiqués dans la section Étape 3 : Accorder des autorisations.

Étape 1 : Se connecter en tant qu'utilisateur root ou administrateur

Connectez-vous à MySQL en tant qu'utilisateur root ou administrateur. L'exemple suivant utilise l'utilisateur root.

$ mysql -u root -p

# After the "Enter password" prompt, enter the password for the root user.
Enter password: password

Étape 2 : Créer un compte

  1. Exécutez la commande suivante pour créer le compte mysqld_exporter.

    mysql> CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'password';
    • localhost : hôte autorisé à se connecter. Remplacez cette valeur par l'adresse IP réelle.

    • mysqld_exporter et password correspondent au nom d'utilisateur et au mot de passe personnalisés. Modifiez-les selon vos besoins.

  2. Validation (facultative)

    Exécutez la commande suivante. Si la requête renvoie l'utilisateur et l'hôte correspondant, l'utilisateur mysqld_exporter a bien été créé.

    -- Query user information from the mysql.user table.
    mysql> SELECT User,Host FROM mysql.user WHERE User = 'mysqld_exporter';
    
    -- Query result
    +-----------------+-----------+
    | User            | Host      |
    +-----------------+-----------+
    | mysqld_exporter | localhost |
    +-----------------+-----------+

Étape 3 : Accorder des autorisations

  1. Exécutez les commandes suivantes pour accorder les autorisations minimales requises au compte mysqld_exporter.

    -- Grant permissions to check the status of primary and secondary servers and view processes for all tables.
    -- If you use the GRANT statement to directly create a new user, add [IDENTIFIED BY 'password'] at the end to set the user password.
    mysql> GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost';
    
    -- Grant the read permission on the performance_schema.* table.
    mysql> GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost';
    
    -- Reload the grant tables to apply the new permissions.
    mysql> FLUSH PRIVILEGES;
    • REPLICATION CLIENT : permet au compte de vérifier l'état de réplication des serveurs principaux et secondaires.

    • PROCESS : permet au compte d'afficher les informations sur les processus dans MySQL.

  2. Vérification du résultat (facultative)

    Exécutez la commande suivante pour vérifier les autorisations accordées.

    -- View the permissions held by the user.
    mysql> SHOW GRANTS FOR 'mysqld_exporter'@'localhost';
    
    -- Query result
    +---------------------------------------------------------------------------+
    | 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 'username'@'hostname'

    Un utilisateur portant le même nom existe déjà. Supprimez d'abord l'utilisateur existant, puis créez le nouveau :

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

    Le serveur MySQL a rejeté la connexion car le nom d'utilisateur ou le mot de passe est incorrect. Vérifiez les identifiants et assurez-vous que l'utilisateur dispose des autorisations appropriées.

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

    Le nom d'utilisateur ou le nom d'hôte n'existe pas dans les tables d'autorisation de MySQL. Vérifiez l'orthographe et le nom d'hôte. Si l'orthographe est correcte, exécutez FLUSH PRIVILEGES pour actualiser les tables d'autorisation.

Références

Pour plus d'informations, consultez la rubrique Utilisation de Prometheus pour surveiller MySQL.